;===========================================================================
;===========================================================================
; PROGRAMA : nom_5
; FUNCION : Escribir el nombre el numero de veces que se pida.
;===========================================================================
;===========================================================================
; DECLARACION DE CONSTANTES
;===========================================================================
CR EQU 13 ; Constante CR (Retorno de carro)
LF EQU 10 ; Constante LF (Salto de l?nea)
IMPRIMIR EQU 9
FIN EQU 4C00H
DOS EQU 21H
;===========================================================================
; DECLARACION DEL SEGMENTO DE DATOS
;===========================================================================
DATOS SEGMENT ; Inicio del segmento de datos
LINEA1 DB CR,LF,'Yolanda Rodrigueez',CR,LF,'$'
DATOS ENDS ; Fin del segmento de datos
;===========================================================================
; DECLARACION DEL SEGMENTO DE PILA
;===========================================================================
PILA SEGMENT STACK ; Inicio del segmento de pila
DB 64 DUP('PILA') ; Inicializaci?n de la pila
PILA ENDS ; Fin del segmento de pila
;===========================================================================
; DECLARACION DEL SEGMENTO DE CODIGO
;===========================================================================
CODIGO SEGMENT ; Inicio del segmento de codigo
nom_5 PROC NEAR ; Inicio procedimiento nom_5
ASSUME CS:CODIGO,DS:DATOS,SS:PILA; Asignar segmentos
ORG 110B
MOV AX,DATOS ; AX=Direcci?n del segmento de datos
MOV DS,AX ; DS=AX. Indicar el segmento de datos
LEA DX,LINEA1 ; DS:DX = direccion de LINEA1
MOV CX,011B ;Us? tabla de conversi?n de hexadecimal a binario (6 corresponde a 011 agreg?ndole la B).
XOR DX,DX
CICLO:
CALL ESCRIBE
INT DOS
LOOP CICLO
CALL SALIR
nom_5 ENDP ; Fin del procedimiento nom_5
;-----------------------------------------------------------------------
;---Imprime en pantalla.
;---Entrada: DX palabra con el valor a mostrar.
;---Llama: ESCRIBE
;----------------------------------------------------------------------
ESCRIBE PROC NEAR ; Inicio procedimiento ESCRIBE
MOV AH,9 ; Funci?n DOS para escribir texto en pantalla
INT DOS ; Llamar a la interrupci?n del DOS
RET ; Volver o retornar
ESCRIBE ENDP ; Fin del procedimiento ESCRIBE
SALIR PROC NEAR
MOV AX, FIN
INT DOS
RET
SALIR ENDP
;-----------------------------------------------------------------------
CODIGO ENDS ; Fin del segmento codigo
;===========================================================================
END nom_5 ; Empezar a ejecutar el procedimiento nom_5
;===========================================================================
No hay comentarios:
Publicar un comentario