Procedimiento Ejemplo Ensamblador

1
5/11/2014 www.abreojosensamblador.net/Productos/AOE/html/Codigos/Cap05/RegsCM1.asm http://www.abreojosensamblador.net/Productos/AOE/html/Codigos/Cap05/RegsCM1.asm 1/1 ; ---------------------------------------------------------------------------- ; - TITULO : Salvaguarda de registros en procedimientos COM-MASM - ; - clásica - ; ----- ----- ; - AUTOR : Alfonso Víctor Caballero Hurtado - ; ----- ----- ; - VERSION : 1.0 - ; ----- ----- ; - (c) 2010. Abre los Ojos al Ensamblador - ; ---------------------------------------------------------------------------- codigo SEGMENT PARA PUBLIC 'CODE' ; Abre el segmento de código ASSUME CS:codigo, DS:codigo, ES:codigo, SS:codigo ORG 100h ; COM -> comienza en 100h Entrada PROC ; Abre el procedimiento MOV AX, 1 MOV DX, 2 CALL Mensaje1 CALL Mensaje2 CALL Fin Entrada ENDP ; cierra el procedimiento Mensaje1: ; Salvaguardamos los registros AX, DX PUSH AX ; Guardamos el registro AX en la pila PUSH DX ; DX MOV DX, OFFSET msg ; PARA la int21h MOV AH, 9 ; Llamamos a la función 9 INT 21h ; de la interrupción 21h POP DX ; Recupera el registro DX de la pila POP AX ; AX RET ; Devuelve la ejecución Mensaje2 PROC USES AX DX MOV DX, OFFSET msg ; PARA la int21h MOV AH, 9 ; Llamamos a la función 9 INT 21h ; de la interrupción 21h RET Mensaje2 ENDP Fin: MOV AX, 4c00h ; Servicio 4Ch, mensaje 0 INT 21h ; volvemos AL DOS msg DB '!Hola, mundo!',13,10,'$' ; Mensaje a imprimir codigo ENDS END Entrada ; Salida por pantalla: ; C:\Trabajo\AOE\Codigos\Cap05>RegsCM1 ; !Hola, mundo! ; !Hola, mundo!

description

ensamblador

Transcript of Procedimiento Ejemplo Ensamblador

  • 5/11/2014 www.abreojosensamblador.net/Productos/AOE/html/Codigos/Cap05/RegsCM1.asm

    http://www.abreojosensamblador.net/Productos/AOE/html/Codigos/Cap05/RegsCM1.asm 1/1

    ; ----------------------------------------------------------------------------; - TITULO : Salvaguarda de registros en procedimientos COM-MASM -; - clsica -; ----- -----; - AUTOR : Alfonso Vctor Caballero Hurtado -; ----- -----; - VERSION : 1.0 -; ----- -----; - (c) 2010. Abre los Ojos al Ensamblador -; ----------------------------------------------------------------------------

    codigo SEGMENT PARA PUBLIC 'CODE' ; Abre el segmento de cdigo ASSUME CS:codigo, DS:codigo, ES:codigo, SS:codigo ORG 100h ; COM -> comienza en 100h Entrada PROC ; Abre el procedimiento MOV AX, 1 MOV DX, 2 CALL Mensaje1 CALL Mensaje2 CALL Fin Entrada ENDP ; cierra el procedimiento

    Mensaje1: ; Salvaguardamos los registros AX, DX PUSH AX ; Guardamos el registro AX en la pila PUSH DX ; DX MOV DX, OFFSET msg ; PARA la int21h MOV AH, 9 ; Llamamos a la funcin 9 INT 21h ; de la interrupcin 21h POP DX ; Recupera el registro DX de la pila POP AX ; AX RET ; Devuelve la ejecucin

    Mensaje2 PROC USES AX DX MOV DX, OFFSET msg ; PARA la int21h MOV AH, 9 ; Llamamos a la funcin 9 INT 21h ; de la interrupcin 21h RET Mensaje2 ENDP

    Fin: MOV AX, 4c00h ; Servicio 4Ch, mensaje 0 INT 21h ; volvemos AL DOS

    msg DB '!Hola, mundo!',13,10,'$' ; Mensaje a imprimircodigo ENDSEND Entrada

    ; Salida por pantalla:; C:\Trabajo\AOE\Codigos\Cap05>RegsCM1; !Hola, mundo!; !Hola, mundo!