Documentos de Académico
Documentos de Profesional
Documentos de Cultura
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 2
ORG 2000H
VII. DESARROLLO DE LA PRACTICA
mov al, 065h
Se plantea un programa para convertir un número mov bl, al ; se respalda el número binario a
binario natural a código binario Gray. El ejemplo se convertir.
muestra a continuación: mov ah, 00h ; clareamos el registro AH para alojar
el resultado allí.
ORG 2000H mov cl, 07h ; el algoritmo consiste en sumar el
MOV AL, 065h número expresado en 16 bits
MOV BL, AL l1: add ax, ax ; registro AX consigo mismo, igual que
SHR BL, 01h multiplicar X 2 o
XOR AL, BL dec cl ; lo mismo que desplazar a la izquierda todo
HLT el número binario,
END jnz l1 ; de hacerlo ocho veces el binario se traslada
al registro AH,
En el momento de hacer la compilación, el MSX 88 mov al, bl ; desplazar siete veces es similar a tener
arroja el error ilustrado en la Figura 1 el número original
mov bl, ah ; desplazado a la derecha una posición
en el registro AH.
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 3
existir varias subrutinas es necesario tener en Entrada: Número binario natural entre 00000000B y
cuenta que deben estar suficientemente 11111111B en los registros AL y BL.
separadas para que no se traslapen. En nuestro Salida: Número binario natural desplazado a la derecha
caso ORG 3000H. un bit entre 00000000B y 01111111B en el registro
3. Le colocamos a la primera instrucción de la BL.
subrutina una etiqueta que en adelante servirá Registros que usa: AX, BL, CL y FR.
para identificarla y acceder a ella desde el Subrutinas que llama: ninguna.
programa principal. Si se quiere se pueden Como conclusión esta subrutina no reemplaza
cambiar las etiquetas de salto para ordenar completamente la instrucción SHR BL, 01h pero si
mejor el texto; de todas formas no deben funciona para los propósitos de nuestro programa. Cada
existir dos etiquetas con el mismo nombre en grupo debe hacer lo propio con la instrucción que
todo el programa porque producirá un error en hayan seleccionado, solo se puede repetir una sola
la compilación. instrucción por grupo.
4. Al final de la subrutina se adicional la
instrucción RET; esto permitirá que la SAR Shift arithmetic right
ejecución del programa retorne a la SAL Shift arithmetic left
instrucción siguiente a la instrucción que la SHL Shift logical left
llamó, el CALL que colocamos en el punto 1, SHRD Shift right double
o sea que después resuelta la instrucción RET, SHLD Shift left double
la siguiente instrucción que se ejecuta, en este ROR Rotate right
ejemplo, es xor al, bl. ROL Rotate left
5. La instrucción CALL obliga al programa a RCR Rotate through carry right
realizar un salto, por lo tanto, esta instrucción RCL Rotate through carry left
debe tener una etiqueta que direccione el La subrutina debe hacer parte de un programa principal
programa hacia la subrutina, en nuestro caso y debe funcionar para cualquier valor de entrada de
sub1. código binario natural de ocho bits (00000000B –
11111111B)
Finalmente, nuestro programa queda así:
VIII. EVALUACION
ORG 3000H
sub1: mov ah, 00h ;\
mov cl, 07h ; | a. Hacer un listado de las instrucciones del
s1: add ax, ax ; \ microprocesador 8086 no soportadas por el
dec cl ; | shr bl, 01h simulador MSX88 y su ensamblador.
jnz s1 ; /
Las instrucciones del microprocesador 8086 no
mov al, bl ; |
soportadas por el simulador MSX88 y su
mov bl, ah ; /
ensamblador, se dividen en:
ret
Instrucciones de transferencia de datos
ORG 2000H
mov al, 065h
XCHG reg., {reg|mem} Intercambia ambos
mov bl, al
valores
call sub1 XLAT Realiza una operación de traducción de
un código de un byte a otro código de un byte
mediante una tabla. Operación: AL <-
xor al, bl
[BX+AL]
hlt
END LEA reg., mem Almacena la dirección
efectiva del operando de memoria en un
registro.
Documentemos la subrutina:
Operación: reg <- dirección mem
LDS reg, mem32 Operación: reg <- [mem],
Nombre: sub1
DS <- [mem+2]
Función: Desplaza el contenido del registro BL bit por
bit una posición a la derecha. La subrutina no lleva el LES reg, mem32 Operación: reg <- [mem],
bit de menor peso a la bandera de Carry pero si inserta ES <- [mem+2]
un bit 0 en el bit de mayor peso del registro.
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 4
LAHF Copia en el registro AH la imagen de ROL dest, {1|CL} Realiza una rotación hacia
los ocho bits menos significativos del registro la izquierda.
de indicadores. Operación: AH <- SF: ROR dest, {1|CL} Realiza una rotación hacia
ZF:X:AF:X:PF:X:CF la derecha.
SAHF Almacena en los ocho bits menos RCL dest, {1|CL} Realiza una rotación hacia
significativos del registro de indicadores el la izquierda usando el CF
valor del registro AH. Operación: SF: RCR dest, {1|CL} Realiza una rotación hacia
ZF:X:AF:X:PF:X:CF <- AH la derecha usando el CF.
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 5
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 6
JNZ DIVISION
MOV AX, CX
MOV CX, 0H
SUB BX,1H
JNZ INCIO
END
IX. CONCLUSIONES
Se logró comprender el concepto de registro ax, bx,
cx, dx, y selección de las variables pertinentes para el
lenguaje de ensamblador.
X. BIBLIOGRAFIA
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.
Práctica #2, Arquitectura de Computadores, Programa Ingeniería Electrónica UFPS, I-2021 7
April - 2021
J A. Ramírez, is with the Universidad Francisco de Paula Santander, (-mail: julianoandresrm@ufps.edu.co) Norte de Santander, Cúcuta, Colombia.