Practica 4
IMPRIMIR IN DIGITO EN HEXADECIMAL
PRACTICA #4
JUÁREZ ZAVALETA MAURO
22-feb-05
[pic]
OBJETIVO……………………………………………………..2
DESARROLLO………...………...…………………………….2
← INSTRUCCIÓN RCL: …. ……………………………5
← INSTRUCCIÓN ADC (suma con carry)………………..5
← INSTRUCCIÓN LOOP (CICLO):..……………………3
PRACTICA(a)…………………………………………………4
PRACTICA (b)…………………………………………………5
PRACTICA (C)…………………………………………………6
CONCLUSIONES…………………………………………...…9
OBJETIVO
← Aprender a convertir un digito en hexadecimal a código ASCII para poder imprimirlo en pantalla
DESARROLLO
Pasos para realizar la conversión de un (digito)numero hexadecimal a código ASCII.
a)Primer paso:
carácter ASCII
MOV AH,02 (
MOV DL,2A
INT 21H
INT 20H
Seselecciona una zona de memoria para almacenar la cadena a imprimir R: 200
*INTRODUCIR CADENA:
R: E 100
PRACTICA
Hacer un programa que imprima en pantalla una cadena de caracteres
- a 100
- xxxx:0100 MOV AH,09 (prepárate para imprimir una cadena de caracteres)
- xxxx:0101 MOV DX,0200 (dirección de la cadena a imprimir)
- INT 21 (imprime cadena)
- Int 20 (findel programa)
-E 200
48 6f 6c 61
2c 20 65 6c
20 44 4f 53
20 73 61 6c
75 64 61 2e
24
-G (ejecutar programa)
Nota: el signo $ indica fin de cadena y no se imprime
Ejemplo:
[pic]
Luego ejecutamos el programa así:
[pic]
COMANDO D(DESPLEGER): Muestra el contenido de la memoria a partir de la zona indicada
PRACTICA (a)Hacer ejecutable el programa anterior
Tenemos que calcular el tamaño y la última dirección es donde
Termina la cadena
Para saber utilizamos el comando D para ver el fin
Así:
[pic]
por lo tanto calculamos el tamaño asi
[pic]
Ahora guardamos el tamaño en BX:CX
Le damos un nombre al archivo
Y guardamos el archivo
Ejemplo:
[pic]
Luego salimos de debug y Ejecutamos el programa[pic]
PRACTICA (b)
HACER UN PROGRAMA QUE DADO UN NUMERO EN HEXADECIMAL LO IMPRIMA EN BINARIO
INSTRUCCIÓN RCL: Rota el carry a la izquierda
Desplaza bit a la CF llenando los huecos con cero
Si solo se desea un desplazamiento se indica con un 1
Si hay mas de un desplazamiento ya no se indica con un numero, En su lugar se utiliza el registro CX donde previamente se almacena el numero dedesplazamiento deseado
Ejemplo:
RCL, BL ,1
Ó
MOV CX, 8
RCL, BL, CX
INSTRUCCIÓN ADC (suma con carry) suma lo que se indique incluyendo el contenido de CF
0=30 (ASCII)
1=31 (ASCII)
CF =0/1+30=(0/1)
DL+CF+30 (CODIGO ASCII DE 0/1)
DL= 0 (DEBE VALER 0)
DL=DL+CF+30
EJEMPLO
ADC DL, 30 (DL=DL+CF+30)
INSTRUCCIÓN LOOP (CICLO): repite un número determinado de instrucciones. Estenumero esta indicado en CX LOOP va a repetir hasta que CX=0 cada vez que se ejecuta LOOP, decrementa automáticamente a 1 a CX
xxxx:0107 MOV CX,8
.
.
.
Loop 0107 (CX=CX-1)
Ejemplo:
-a 100
-xxxx:0100 MOV AH,02 (se prepara para imprimir una cadena)
-xxxx:xxxx MOV BL,0A (0A dato a convertir)
-xxxx:xxxx MOV CX:0008 (numero de caracteres a imprimir)
-xxxx:xxxxMOV DL,0(valor inicial de dl)
-xxxx:xxxx RCL BL,1 (obtén los bits a imprimir)
-xxxx:xxxx ADC DL,30 (convertir bit en código ASCII )
-xxxx:xxxx INT 21 (imp rime bit)
-xxxx:xxxx LOOP DIRECCION DESEADA (regresa a imprimir otro bit)
-xxxx:xxxx INT 20 (fin de programa)
Ejemplo practico:
[pic]
PRACTICA(c)
Hacer un programa que dado un número hexadecimal lo convierta a binario. El programa debefuncionar como sigue:
El número a convertir es: 0A
El número convertido en binario es: 00001010
Ejemplo:
-a 100
-xxxx:xxxx MOV AH,09 (prepárate para imprimir cadena)
-xxxx:xxxx MOV DX,0200 (ubicación de la primera cadena )
-xxxx:xxxx INT 21 (imprime cadena)
-xxxx:xxxx MOV DX,0300 (ubicación de la segunda cadena)
-xxxx:xxxx INT 21 (imprime la cadena)...
Regístrate para leer el documento completo.