Vous êtes sur la page 1sur 3

DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I

GUIA DE LABORATORIO 2: INTRUCCIONES ARITMETICAS Y LOGICAS

OBJETIVOS
 Conocer y aplicar las instrucciones aritméticas ADD, SUB, MUL, DIV
para realizar operaciones sencillas en datos binarios.
 Programar en ensamblador pequeños programas que lleven
instrucciones aritméticas.
 Observar el cambio en el registro de banderas.
 Conocer y aplicar las instrucciones lógicas AND, OR, XOR y de
desplazamiento para la manipulación de bits.

INTRODUCCION

Las instrucciones aritméticas del 8086 incluyen la suma, resta, multiplicación,


división, comparación, negación aritmética, incremento y decremento. Las
instrucciones lógicas incluyen AND, OR, OR exclusivo, NOT, desplazamiento,
rotación y comparación lógica (TEST).

Solo los microprocesadores modernos contienen las instrucciones de


multiplicación y división. Los primeros microprocesadores de 8 bits no podían
multiplicar ni dividir sin un programa que realizara estas operaciones mediante
el empleo de una serie de desplazamientos y sumas o restas sucesivas.
Puesto que los fabricantes de microprocesadores tenían conocimiento de esta
carencia, incorporaron la multiplicación y división en los conjuntos de
instrucciones de los microprocesadores más recientes.

Las instrucciones aritméticas y lógicas modifican el registro de bandera. Si el


resultado de una operación de suma es mayor que el máximo que puede ser
representado por el sistema, entonces la bandera de acarreo es puesta en 1 e
indica que ha ocurrido un acarreo en la suma que acaba de realizar. En la
substracción, si el minuendo es menor que el substraendo, la bandera de
acarreo es también puesta en 1, con la diferencia que ahora indica que ha
ocurrido un préstamo en la anterior operación de resta. Estas características
son utilizadas para realizar operaciones con más de un byte.

PROCEDIMIENTO
1. Corra el simulador emu8086 haciendo doble clic en el ícono
2. A continuación se muestra un programa que suma dos números
de 16 bits que se encuentran guardados en las localizaciones de memoria
num1 y num2.

mov ax,num1 ; copia el sumando 5689h en AX


mov bx,num2 ; copia el sumando 05FEh en BX
add bx,ax ; realiza la suma de los dos operandos y el resultado queda
en bx.
hlt

1
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I

num1 dw 5689h
num2 dw 05FEh
3. Luego compile y simule el programa utilizando el botón de la
derecha Compile and Emulate.
4. Corra el programa paso a paso. ¿Trabajó el programa conforme
se requería? Observe el registro de banderas.
5. Modifique este programa para que sume dos números de 16 bits
guardados en las localizaciones de memoria con offset de 0256h y 0258h,
utilice los mismos valores.
6. Compruebe que este programa ofrezca el mismo resultado que el
anterior.

1. A continuación se muestra un programa que desplaza 1 bit a la
izquierda 3 números de 8 bits que se encuentran en las localizaciones de
memoria consecutivas a partir de la memoria con offset 1033h. Los datos
son los siguientes:

Localidad 1033h 1034h 1035h


de memoria
Dato 04h 05h 10h

Mov al,[1033h] ; copia en al el primer dato


sal al,1 ; desplaza a la izquierda el dato
Mov [1033h],al ; copia en la localización de memoria 1033h el nuevo valor
Mov dl,[1034h] ; copia en dl el segundo dato
sal dl,1 ; rota a la izquierda el segundo dato
Mov [1034h],dl ;copia en la localidad de memoria 1034h el nuevo valor
Mov al,[1035h] ; copia en al el tercer dato
sal al,1 ; rota a la izquierda el tercer dato
Mov [1035h],al ; copia en la localidad de memoria 1035h el nuevo valor
Hlt
2. Corra el programa paso a paso (single step) y observe cómo
cambian los registros. Observe los nuevos valores que calculó el programa
que se encuentran guardados en las mismas localizaciones de memoria de
los datos originales. ¿A qué operación aritmética es equivalente la
instrucción lógica de desplazamiento a la izquierda?
3. Modifique ahora el programa cambiando todas las instrucciones
de desplazamiento a la izquierda por desplazamientos a la derecha.
Observe los cambios en los valores e indique a que operación aritmética es
equivalente la instrucción de desplazamiento a la derecha.
4. Haga un programa que sume cuatro números de 16 bits y la suma
la divida entre 16 y el resultado lo guarde a partir de la localización de
memoria con offset de 1000h. Añada una instrucción lógica para invertir
todos los bits del resultado, que se guardaran en dos localizaciones de
memoria consecutivas 10 bytes después del último resultado guardado.
5. Muestre los resultados de esta práctica de laboratorio en un
reporte, contestando todas las preguntas incluidas en la presente guía,
incluya conclusiones.
2
Prof: Melania Solís
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES-FEC

ARQUITECTURA DE MAQUINAS I

TRABAJO PREVIO:
Repase las instrucciones aritméticas y lógicas del 8086.
Estudie los programas propuestos en esta guía y realice las modificaciones en
su cuaderno antes de realizar esta práctica de laboratorio.

3
Prof: Melania Solís

Vous aimerez peut-être aussi