Programa #8 "Pide 3 cadenas"
TECLADO EQU 8
IMPRIMIR EQU 9
FIN EQU 4C00H
DOS EQU 21H
BIOS EQU 10H
TAB EQU 09H
BELL EQU 07H
CR EQU 13
LF EQU 10
DATOS SEGMENT
NOMBRE DB 30 DUP(32),"$"
DIR DB 30 DUP(32),"$"
TLF DB 15 DUP(32),"$"
MENS1 DB "NOMBRE: $"
MENS2 DB "DIRECCION: $"
MENS3 DB "TELEFONO: $"
ENTERR DB CR,LF,"$"
DATOS ENDS
PILA SEGMENT STACK
DB 64 DUP("PILA")
PILA ENDS
CODIGO SEGMENT
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
INICIO:
MOV AX,DATOS
MOV DS,AX
CALL MODO_DE_VIDEO
MOV DX,OFFSET MENS1
CALL ESCRIBE
MOV SI,OFFSET NOMBRE
MOV CX,8
CALL PEDIR
CALL SALTO_DE_LINEA
MOV DX,OFFSET MENS2
CALL ESCRIBE
MOV SI,OFFSET DIR
MOV CX,8
CALL PEDIR
CALL SALTO_DE_LINEA
MOV DX,OFFSET MENS3
CALL ESCRIBE
MOV SI,OFFSET TLF
MOV CX,10
CALL PEDIR
CALL SALTO_DE_LINEA
CALL ESCRIBE
CALL ESCRIBE
CALL ESCRIBE
MOV DX,OFFSET NOMBRE
CALL ESCRIBE
CALL SALTO_DE_LINEA
MOV DX,OFFSET DIR
CALL ESCRIBE
CALL SALTO_DE_LINEA
MOV DX,OFFSET TLF
CALL ESCRIBE
CALL SALTO_DE_LINEA
CALL SALIR
PEDIR PROC NEAR
BUCLE:
MOV AH,TECLADO
INT DOS
MOV[SI],AL
MOV AH,2
MOV DL,AL
INT DOS
INC SI
LOOPNZ BUCLE
RET
PEDIR ENDP
ESCRIBE PROC NEAR
MOV AH,IMPRIMIR
INT DOS
RET
ESCRIBE ENDP
SALTO_DE_LINEA PROC NEAR
MOV DX,OFFSET ENTERR
CALL ESCRIBE
RET
SALTO_DE_LINEA ENDP
MODO_DE_VIDEO PROC NEAR
MOV AX,3
INT BIOS
RET
MODO_DE_VIDEO ENDP
SALIR PROC NEAR
MOV AX,FIN
INT DOS
RET
SALIR ENDP
CODIGO ENDS
END INICIO

No hay comentarios:
Publicar un comentario