Programa 5:
Limpia la pantalla.
Código:
FIN_4C00H EQU 4C00H
DOS_21H EQU 21H
BIOS_10H EQU 10H
PILA SEGMENT STACK
DW 100 DUP('0')
PILA ENDS
CODIGO SEGMENT
CLS PROC FAR
ASSUME CS: CODIGO, SS: PILA
CALL LIMPIA_PANTALLA
MOV AX, FIN_4C00H
INT DOS_21H
CLS ENDP
LIMPIA_PANTALLA PROC NEAR
MOV AX, 0600H
MOV BH, 0AH
MOV CX, 000H
MOV DX, 484FH
INT BIOS_10H
RET
LIMPIA_PANTALLA ENDP
CODIGO ENDS
END CLS
Resultado:
Programa 6:
Posición del cursor
Código:
CR EQU 13
LF EQU 10
TECLADO_8 EQU 8
IMPRIMIR_9 EQU 9
FIN_4C00H EQU 4C00H
DOS_21H EQU 21H
BIOS_10H EQU 10H
TAB EQU 09H
BELL EQU 07H
DATOS SEGMENT
RENGLON DB 0
COLUMNA DB 0
MENSAJE DB CR, LF, 'POSICION(X,Y), DEL MENSAJE:GRIS', CR, LF,'$'
DATOS ENDS
PILA SEGMENT STACK
DW 100 DUP('0')
PILA ENDS
CODIGO SEGMENT
PC PROC FAR
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
LEA DX, MENSAJE
CALL POSICIONA_CURSOR
MOV AH, IMPRIMIR_9
INT DOS_21H
MOV AX, FIN_4C00H
INT DOS_21H
PC ENDP
POSICIONA_CURSOR PROC NEAR
MOV AH, 02
MOV DH, 00
MOV DH, RENGLON
MOV DL, COLUMNA
INT BIOS_10H
RET
POSICIONA_CURSOR ENDP
CODIGO ENDS
END PC
Resultado:
Programa 7:
BORRA PANTALLA Y POSICIONA CURSOR.
Código:
CR EQU 13
LF EQU 10
TECLADO_8 EQU 8
IMPRIMIR_9 EQU 9
FIN_4C00H EQU 4C00H
DOS_21H EQU 21H
BIOS_10H EQU 10H
TAB EQU 09H
BELL EQU 07H
DATOS SEGMENT
RENGLON DB 0
COLUMNA DB 0
MENSAJE DB CR, LF, 'POSICION (X,Y), DEL MENSAJE:GRIS '
DB 'DESPUES DE BORRAR PANTALLA', CR, LF, '$'
DATOS ENDS
PILA SEGMENT STACK
DW 100 DUP('0')
PILA ENDS
CODIGO SEGMENT
CLSP PROC FAR
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
LEA DX, MENSAJE
CALL LIMPIA_PANTALLA
CALL POSICIONA_CURSOR
MOV AH, IMPRIMIR_9
INT DOS_21H
MOV AX, FIN_4C00H
INT DOS_21H
CLSP ENDP
LIMPIA_PANTALLA PROC NEAR
MOV AX, 0600H
MOV BH, 0AH
MOV CX, 000H
MOV DX, 484FH
INT BIOS_10H
RET
LIMPIA_PANTALLA ENDP
POSICIONA_CURSOR PROC NEAR
MOV AH, 02
MOV BH, 00
MOV DH, RENGLON
MOV DL, COLUMNA
INT BIOS_10H
RET
POSICIONA_CURSOR ENDP
CODIGO ENDS
END CLSP
Resultado:
Programa 8:
PIDE 3 CADENAS.
Código:
CR EQU 13
LF EQU 10
TECLADO EQU 8
IMPRIMIR EQU 9
FIN EQU 4C00H
DOS EQU 21H
BIOS EQU 10H
TAB EQU 09H
BELL EQU 07H
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
INICIO PROC FAR
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
MOV AX, DATOS
MOV DS, AX
CALL MODO_DE_VIDEO
MOV DX, OFFSET MENS1
CALL ESCRIBE
MOV SI, OFFSET NOMBRE
MOV CX, 5
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
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
Resultado:
Referencia:
No hay comentarios:
Publicar un comentario