15.05.2013 Views

PRÁCTICA 1

PRÁCTICA 1

PRÁCTICA 1

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!