You are on page 1of 7

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, SS:PILA 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 PILA SEGMENT STACK DB 900 DUP(?) PILA ENDS END INICIO 2) ;reconoce y discrimina que tecla de function fue pulsada ;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 de funcion","$" Mensaje db " LA TECLA DE FUNCION PRESIONADA FUE........ F" uno db "1" dolar db "$" numero db ? Fun1 db ";" Fun2 db "<" Fun3 db "=" Fun4 db ">" Fun5 db "?" Fun6 db "@"
1

rastreo db ? db "$" DATA ENDS PILA SEGMENT STACK DB 900 DUP(?) PILA ENDS INSTRUC SEGMENT ASSUME CS:INSTRUC, DS:DATA, SS:PILA INICIO: MOV AX,DATA MOV DS,AX mov ah,00h int 16h mov rastreo,ah cmp al,00h jz funcion1 mov lea int MOV INT ah,09h dx,teclaf 21h AH,4Ch 21h

funcion1: mov ah,rastreo sub ah,fun1 jz mostrar funcion2: add uno,1 mov ah,rastreo sub ah,fun2 jz mostrar funcion3: add uno,1 mov ah,rastreo sub ah,fun3 jz mostrar funcion4: add uno,1 mov ah,rastreo sub ah,fun4 jz mostrar mostrar: mov lea int MOV INT ah,09h dx,Mensaje 21h AH,4Ch 21h
2

INSTRUC ENDS END INICIO 3) ;copia y replica la tercera lnea de la pagina active ;ejecutar considerando que no se encuentren en el ultimo rengln de la pagina activa 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:pila INICIO: 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 PILA SEGMENT STACK DB 900 DUP(?) PILA ENDS END INICIO

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:pila 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
4

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 MOV MOV DESP1: MOV proc near DI,0 DH,0 ; Rengln 05 MOV AH,02h ; peticin para colocar el cursor BH,pag ; Nmero de pgina activa 0 ; ; ; ; ; Columna 12 interrupcin que llama al BIOS peticin de despliegue caracter que se despliega despliega veinte caracteres * ; Llama al BIOS ; 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 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 mitadinf MOV MOV DESP2: MOV MOV INT MOV MOV MOV INT

proc near DI,0 DH,13 ; Rengln 05 MOV AH,02h ; peticin para colocar el cursor BH,pag ; Nmero de pgina activa 0 DL,0 ; Columna 12 10h ; interrupcin que llama al BIOS AH,0Ah ; peticin de despliegue AL,'X' ; caracter que se despliega CX,80 ; despliega veinte caracteres * 10h ; Llama al BIOS
5

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 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
6

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 pila SEGMENT STACK DB 900 DUP(?) pila ENDS END inicio ; ; ; ; ; Columna 12 interrupcin que llama al BIOS peticin de despliegue caracter que se despliega despliega veinte caracteres * ; Llama al BIOS