Está en la página 1de 6

PROGRAMAS DE PRUEBA DE MANEJO DE TECLADO 1) ;programa de prueba de la funcin 01h int21/detecta tecla funcin DATA SEGMENT Teclaf db "no

presiono una tecla funcion","$" Teclanf db "presiono una tecla funcion","$" DATA ENDS INSTRUC SEGMENT ASSUME CS:INSTRUC,DS:DATA INICIO: MOV AX,DATA MOV DS,AX mov int cmp jnz mov lea int MOV INT L1: mov lea int MOV INT ah,01h 21h al,00h L1 ah,09h dx,teclanf 21h AH,4Ch 21h ah,09h dx,teclaf 21h AH,4Ch 21h

INSTRUC ENDS stack SEGMENT STACK DB 900 DUP(?) stack ENDS END INICIO 2) data SEGMENT renglonactual

db

linea db 80 dup(' ') fin db '$' ren col db db 3 0 0 ;replica la tercera lnea

cant dw data ENDS

INSTRUC SEGMENT ASSUME CS:INSTRUC,ds:data,ss:stack INICIO:


1

mov ax,data mov ds,ax MOV MOV INT mov INC AH,03h ; peticin para leer la posicin de cursor BH,00 ; Nmero de pgina activa 0 10h ; Llama al BIOS renglonactual,DH renglonactual

LEA DI,linea COLUM: MOV MOV MOV INT MOV AH,02h ; peticin para colocar el cursor BH,00 ; Nmero de pgina activa 0 DH,ren DL,col 10h ; interrupcin que llama al BIOS ; ; Nmero de pgina 0 (normal) ; Llama al BIOS

MOV AH,08h MOV BH,00 INT 10h MOV [DI],AL INC DI INC col MOV BX,79 INC cant CMP BX,cant JA colum MOV MOV MOV MOV INT

AH,02h ; peticin para colocar el cursor BH,00 ; Nmero de pgina activa 0 DH,renglonactual DL,00 10h ; interrupcin que llama al BIOS

MOV AH,09h LEA DX,linea INT 21h mov ah,4ch int 21h grafico proc near mov ah,00h mov al,12h int 10h ret grafico endp INSTRUC ENDS STACK SEGMENT STACK DB 900 DUP(?) STACK ENDS END INICIO
2

3) intercambio de pginas DATOS SEGMENT modo DB DATOS ENDS CODIGO SEGMENT ASSUME CS:CODIGO,ds:DATOS,ss:STACK inicio: mov ax,DATOS mov ds,ax ;lee modo de video y graba en al mov ah,0fh int 10h mov modo,al MOV AH,05h MOV AL,ff INT 10h MOV MOV MOV MOV MOV INT AH,07h AL,00 BH,40h CX,0505h DX,134ah 10h ; peticin de pgina activa ; Nmero de pgina ; Llama al BIOS ; peticin para recorrido de pantalla ; para recorrido completo ; Nmero de atributo fondo (7) y texto (1) ; Rengln 00 y columna 00 inicial ; Rengln 24 y columna 79 final ; interrupcin que llama al BIOS ?

mov ah,10h int 16h MOV AH,05h MOV AL,00 INT 10h mov ah,4ch int 21h CODIGO ENDS STACK SEGMENT STACK DB 900 DUP(?) STACK ENDS END inicio ; peticin de pgina activa ; Nmero de pgina ; Llama al BIOS

4) intercambio de pginas2 DATOS SEGMENT modo DB ? pag DB ? xini DB ? yini DB ? colu DW ? DATOS ENDS CODIGO SEGMENT ASSUME CS:CODIGO,ds:DATOS,ss:STACK inicio: mov ax,DATOS mov ds,ax ;lee modo de video y graba en el registro al mov ah,0fh int 10h mov modo,al mov pag,01 call mitadsup call mitadinf mov pag,02 call supizq call supderech call mitadinf mov pag,03 call infizq call infderech call mitadsup MOV AH,05h MOV AL,01 INT 10h mov ah,10h int 16h MOV AH,05h MOV AL,02 INT 10h mov ah,10h int 16h MOV AH,05h MOV AL,03 INT 10h mov ah,4ch int 21h mitadsup proc near MOV DI,0
4

; peticin de pgina activa ; Nmero de pgina ; Llama al BIOS

; peticin de pgina activa ; Nmero de pgina ; Llama al BIOS

; peticin de pgina activa ; Nmero de pgina ; Llama al BIOS

MOV DH,0 ; Rengln 05 DESP1: MOV AH,02h ; peticin para colocar el cursor MOV BH,pag ; Nmero de pgina activa 0 MOV DL,0 INT 10h MOV AH,0Ah MOV AL,'X' MOV CX,80 INT 10h INC DH INC DI CMP DI,12 JB DESP1 RET mitadsup endp ; ; ; ; ; Columna 12 interrupcin que llama al BIOS peticin de despliegue caracter que se despliega despliega veinte caracteres * ; Llama al BIOS

mitadinf proc near MOV DI,0 MOV DH,13 ; Rengln 05 DESP2: MOV AH,02h ; peticin para colocar el cursor MOV BH,pag ; Nmero de pgina activa 0 MOV DL,0 ; Columna 12 INT 10h ; interrupcin que llama al BIOS MOV AH,0Ah ; peticin de despliegue MOV AL,'X' ; caracter que se despliega MOV CX,80 ; despliega veinte caracteres * INT 10h ; Llama al BIOS INC DH INC DI CMP DI,12 JB DESP2 RET mitadinf endp supizq proc near MOV DI,0 MOV DH,0 ; Rengln 05 DESP3: MOV AH,02h ; peticin para colocar el cursor MOV BH,pag ; Nmero de pgina activa 0 MOV DL,0 ; Columna 12 INT 10h ; interrupcin que llama al BIOS MOV AH,0Ah ; peticin de despliegue MOV AL,'X' ; caracter que se despliega MOV CX,39 ; despliega veinte caracteres * INT 10h ; Llama al BIOS INC DH INC DI CMP DI,12 JB DESP3 RET supizq endp supderech proc near MOV DI,0 MOV DH,0 ; Rengln 05 DESP4: MOV AH,02h ; peticin para colocar el cursor
5

MOV BH,pag ; Nmero de pgina activa 0 MOV DL,41 INT 10h MOV AH,0Ah MOV AL,'X' MOV CX,39 INT 10h INC DH INC DI CMP DI,12 JB DESP4 RET supderech endp ; ; ; ; ; Columna 12 interrupcin que llama al BIOS peticin de despliegue caracter que se despliega despliega veinte caracteres * ; Llama al BIOS

infizq proc near MOV DI,0 MOV DH,13 ; Rengln 05 DESP5: MOV AH,02h ; peticin para colocar el cursor MOV BH,pag ; Nmero de pgina activa 0 MOV DL,0 ; Columna 12 INT 10h ; interrupcin que llama al BIOS MOV AH,0Ah ; peticin de despliegue MOV AL,'X' ; caracter que se despliega MOV CX,39 ; despliega veinte caracteres * INT 10h ; Llama al BIOS INC DH INC DI CMP DI,12 JB DESP5 RET infizq endp infderech proc near MOV DI,0 MOV DH,13 ; Rengln 05 DESP6: MOV AH,02h ; peticin para colocar el cursor MOV BH,pag ; Nmero de pgina activa 0 MOV DL,41 INT 10h MOV AH,0Ah MOV AL,'X' MOV CX,39 INT 10h INC DH INC DI CMP DI,12 JB DESP6 RET infderech endp CODIGO ENDS STACK SEGMENT STACK DB 900 DUP(?) STACK ENDS END inicio
6

; ; ; ; ;

Columna 12 interrupcin que llama al BIOS peticin de despliegue caracter que se despliega despliega veinte caracteres * ; Llama al BIOS

También podría gustarte