PRÁCTICA 1
PRÁCTICA 1
PRÁCTICA 1
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
LENGUAJE ENSAMBLADOR 80386 <strong>PRÁCTICA</strong> 1<br />
;TraeCar RETORNA EL VALOR DE LA TECLA<br />
;<br />
;Entrada: Ninguna<br />
;Salida: ZF = 0 (y AH = 1): AL = carácter ASCII normal<br />
; ZF = 1 (y AH = 0): AL = carácter de control o función<br />
;Registros: AX<br />
PROC TraeCar<br />
xor ah,ah ;Función de BIOS para leer teclazo<br />
in 16h ;Llama al BIOS<br />
or al,al ;El código ASCII es 0 ?<br />
jnz @@10 ;no, brinca fue normal<br />
xchg ah,a ;Hace AH = 0 y AL = código barrido<br />
add al,32 ;Ajusta código a ≥32<br />
jmp short @@20 ;Brinca para salir<br />
@@10:<br />
xor ah,ah ;Inicia AH = 0<br />
cmp al,32 ;El código ASCII es 32 (p.e. Ctrl-A)?<br />
jb @@20 ;sí, brinca<br />
inc ah ;Pone AH = 1, caso normal<br />
@@20:<br />
or ah,ah ;Pone a "0" o "1" en ZF<br />
ret<br />
ENDP TraeCar<br />
END ;Fin del módulo TECLADO.ASM<br />
Con la interrupción 16H, servicio 1, obtenemos el código ASCII de la tecla oprimida, en caso<br />
de no digitar tecla la bandera de 0 se pone a 1.<br />
En el procedimiento TraeCar utilizamos el servicio 0 de la interrupción 16H para obtener en<br />
AX el código de barrido de la tecla oprimida.<br />
3.8 Capturar el módulo anterior con el nombre TECLADO.ASM y ensamblarlo:<br />
C>TASM /zi TECLADO<br />
3.9 Guardarlo en la librería con el comando siguiente:<br />
C>TLIB /E REM -+TECLADO<br />
AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />
EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />
1-7