-
-
Save everblut/1874981 to your computer and use it in GitHub Desktop.
Sys Write en Assembly
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Asi se hacen los comentarios. | |
SECTION .data ;Definimos la seccion de datos estaticos, equivalentes de constantes. | |
msg: db "Hola clase :)",10,13 ;etiqueta: db (DefineByte) "cadena",bytes sin formato, 10 = fin de linea, 13 = salto de linea | |
lon: equ $-$$ ;etiqueta: equ (EQUAL) cantidad. Es el equivalente de #define en lenguaje C | |
;$ es para la posicion actual del puntero en la ejecuccion desde que se inicio la seccion. | |
;$$ es para ver la posicion inicial desde la seccion. (donde estoy - donde estaba) | |
SECTION .text | |
;seccion text, aqui es donde va el codigo | |
global _start ;etiqueta para el enlazador | |
_start: ;punto de entrada para el enlazador ( funcion main ) | |
mov edx,lon ;Registro D, aqui guardaremos la longuitud de la cadena a imprimir | |
mov ecx,msg ;Registro C, aqui pondremos el puntero a los caracteres. | |
mov ebx,1 ;Registro B, aqui le ponemos el descriptor del archivo ( recordando que en unix todo es un archivo ) 1 =STDOUT | |
mov eax,4 ;Registro A, numero de comando 4=sys_write | |
int 0x80 ;interrupcion 80, llama al kernel y ejecuta la llamada que este en el acumulador | |
mov ebx,0 ;salida del codigo al sistema operativo | |
mov eax,1 ;numero de comando 1 = sys_exit | |
int 0x80 ;interrumpcion 80 hex, llama al kernel |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment