Sunteți pe pagina 1din 11

UNIVERSIDAD FRANCISCO GAVIDIA

FACULTAD DE INGENIERIA

TEMA: GUIA 2 TALLER MICROPROCESADORES MODOS DE DIRECCIONAMIENTO E


INSTRUCCIONES ARITMTICAS

CTEDRA: INTRODUCCION A LOS MICROPROCESADORES 1


CATEDRTICO: ING. MARIO ERNESTO BOJORQUEZ FLORES
INSTRUCTOR: ING. ELMER ELIAS CHANCHAN

ALUMNO: MOLINA SIGUENZA, EDUARDO JAVIER

SAN SALVADOR, 12 DE SEPTIEMBRE DE 2017


Marco Terico

Los modos de direccionamiento bsicamente se suelen utilizar en el manipuleo de datos


ya sea de naturaleza binaria, decimal y hexadecimal. Los modos de direccionamiento se
auxilian de los registros de 8,16 y 32 bits asociados a la CPU que se utilizara para
programar un cdigo en ensamblador. Esto nos hace recordar que para ciertos
microprocesadores solo tendremos acceso a ciertos registros en funcin del emulador. En
el caso del emulador EMU8086 solo tenemos disponibles registros de 16 bits as que eso
restringe el tipo de datos a manipular.

Objetivo general:

Conocer las distintas directivas de programacin para los distintos modos de


direccionamiento disponibles para los microprocesadores Intel.

Objetivos especficos:

Conocer cmo opera el direccionamiento por registros y como afecta el bit de


bandera Carry en una operacin aritmtica de tipo suma o adicin.

Identificar las sentencias de programacin que correspondan a un


direccionamiento directo y las banderas que se afecten en una operacin
aritmtica de tipo resta o sustraccin

Combinar el direccionamiento indirecto por registro y el direccionamiento directo


por datos para la lectura de datos en memoria y efectuar la operacin aritmtica
multiplicacin.
DIRECCIONAMIENTO POR REGISTROS.

Este modo de direccionamiento es el ms comn para direccionar datos, adems de ser el


ms fcil de aplicar cuando ya se tienen claros los registros disponibles segn el
microprocesador a utilizar. Digite el siguiente cdigo seleccionando la opcin nuevo
archivo de tipo .COM y que el cdigo inicie desde la posicin de memoria 100H.

a) Antes de ejecutar el cdigo anterior rellene la siguiente tabla donde se muestran


los estados iniciales de los bits de bandera:

CF ZF SF OF PF AF IF DF
0 0 0 0 0 0 1 0

b) Luego de ejecutar el cdigo y llegar hasta la sentencia ret vuelva a rellenar la tabla de los bits
de bandera:

CF ZF SF OF PF AF IF DF
1 1 0 0 1 1 0 0

c) Investigue como opera la directiva de programacin ADD, luego explique cuales


bits de bandera se activan despus de ejecutar el programa anterior y detalle
porque quedan activados.
ADD: suma aritmtica
ADD destino, fuente
Efecta la suma aritmtica de los dos operandos de la instruccin, almacena el
resultado sobre el operando destino y sustituye el valor inicial del operando
destino.
Operacin
destino = destino + fuente
Bits de resultado modificados
OF, SF, ZF, AF, PF, CF
Si el resultado no cabe dentro del operando destino, el bit de transporte se pone a
1. El resto de bits de resultado se modifican segn el resultado de la operacin.
Formatos vlidos
ADD reg, reg
ADD reg, tamao mem
ADD tamao mem, reg
Los dos operandos han de ser del mismo tamao.

ADD reg, imm

ADD tamao mem, imm

El tamao del inmediato puede ir desde 8 bits hasta el tamao del primer operando, 32
bits como mximo.

Bits activados despus de realizar ejemplo:


CF se activa porque hay acarreo
ZF se pone en 1 por que el resultado no es 0
PF se activa porque detecta por que la operacin emite un nmero par
AF se activa por acarreo auxiliar en la operacin
DIRECCIONAMIENTO POR REGISTROS.

Este tipo de direccionamiento implica que los datos son direccionados en el mismo
momento en el que se ejecuta el cdigo de operacin hexadecimal en la memoria. Hay
dos tipos de datos que se pueden direccionar de manera inmediata: los datos constantes y
los datos variables. Los datos constantes son aquellos que se copian de manera directa en
el registro y los datos variables son aquellos que se transfieren desde un registro a una
posicin de memoria. Digite el siguiente cdigo seleccionando la opcin nuevo archivo de
tipo .COM y que el cdigo inicie desde la posicin de memoria 100H.

a) Antes de ejecutar el cdigo anterior rellene la siguiente tabla donde se muestran los estados
iniciales de los bits de bandera:

CF ZF SF OF PF AF IF DF
0 0 0 0 0 0 1 0

b) Luego de ejecutar el cdigo y llegar hasta la sentencia ret vuelva a rellenar la tabla de los bits
de bandera:

CF ZF SF OF PF AF IF DF
1 0 1 0 1 1 0 0
c) Investigue como opera la directiva de programacin SUB, luego explique cuales
bits de bandera se activan despus de ejecutar el programa anterior y detalle
porque quedan activados.
SUB: Substraccin aritmtica
SUB destino,origen
Resta al operando de destino el valor o contenido del operando fuente,
almacenandose el resultado en el operando destino. Ambos operandos han de ser
del mismo tamao (byte o palabra)
Formato:
SUB reg,inmediato
SUB mem,inmediato
SUB reg,reg
SUB mem,reg
SUB reg,mem
Bits activados despus de realizar ejemplo:
CF se activa por acarreo
SF se activa por signo negativo
PF se activa por ser nmero par
AF se activa por acarreo auxiliar

DIRECCIONAMIENTO POR DESPLAZAMIENTO.

Este modo de direccionamiento es bastante similar al direccionamiento directo. La


estructura de la programacin de este direccionamiento es la siguiente: mov CL,
DS:[1234H];

En esta instruccin se entiende que se copia en CL el contenido tipo byte de la direccin


de memoria 1234H del segmento de datos. En este modo de direccionamiento es usual el
uso del DS ya que en este registro se almacenan datos. Eso no implica que no se pueda
utilizar otro registro de tipo segmento. Digite el siguiente cdigo utilizando la plantilla de
programacin .COM y partiendo desde el origen de memoria 100H.

a) Antes de ejecutar el cdigo anterior rellene la siguiente tabla donde se muestran los estado
iniciales de los bits de bandera:

CF ZF SF OF PF AF IF DF
0 0 0 0 0 0 1 0

b) Luego de ejecutar el cdigo y llegar hasta la sentencia ret vuelva a rellenar la tabla de los bits
de bandera:

CF ZF SF OF PF AF IF DF
1 0 1 0 0 0 0 0

c) Investigue como opera la directiva de programacin MUL, luego explique cuales bits de
bandera se activan despus de ejecutar el programa anterior y detalle porque quedan
activados.
MUL: multiplicacin entera sin signo
MUL fuente
MUL multiplica el operando explcito por AL, AX, EAX o RAX sin considerar el signo de los operandos y
almacena el resultado en AX, DX:AX, EDX:EAX o RDX:RAX.

Operacin
Si fuente es de 8 bits AX = AL * fuente
Si fuente es de 16 bits DX:AX = AX * fuente
Si fuente es de 32 bits EDX:EAX = EAX * fuente
Si fuente es de 64 bits RDX:RAX = RAX * fuente

Bits de resultado modificados


OF, SF, ZF, AF, PF, CF
Los bits de resultado SF, ZF, AF, y PF quedan indeterminados despus de que se ejecute la instruccin
MUL.
CF y OF se fijan a 0 si la parte alta del resultado es 0 (AH, DX, EDX, o RDX); en caso contrario se fijan a 1.
Formatos vlidos
MUL reg
MUL tamao mem

Bits activados despus de realizar ejemplo:


CF se activa por acarreo
OF se activa por desbordamiento, es decir la operacin es muy grande para ser almacenada en
el registro

1. Investigue como colocar a cero los bits de bandera afectados por una operacin aritmtica.
Mnemotcnico: POPF (POP Flags)
Sintaxis: POPF
Operacin: Registro de estado SS:[SP]
SP SP+2
Utilidad:
Restaurar el estado del procesador o forzar un cierto estado (es la nica manera de actuar sobre el
registro de estado en su conjunto)
2. Investigue cmo funcionan las distintas palabras reservadas para realizar operaciones
aritmticas en el ensamblador.

3. Disee un cdigo en ensamblador que realice las cuatro operaciones aritmticas bsicas.
Guarde los nmeros en el segmento de datos partiendo desde la posicin de memoria 0x120.
Antes de cada operacin los registros se deben de colocar a cero. Se deben de recuperar los
datos almacenados en el segmento de datos por medio de direccionamiento indirecto por
registro o por desplazamiento. Registre por medio de tablas como se afectan cada bit de
bandera para cada operacin. Antes de cada operacin coloque a cero los bits de bandera.
org 120h
popf
mov ax,00H
mov bx,00H
mov ax,0FFFEH
mov bx,02H
add ax,bx; ax+bx y almacena en ax
popf
mov cx,000H
mov ax,cx
mov dx,cx
mov ax,01A1bH
mov dx,02f2eH
sub ax,dx; ax-dx y almacena en ax
popf
mov cx,000H
mov ax,cx
mov bx,cx
mov ax,002H
mov cx,002H
mul cx; ax*cx y almacena en al
popf
mov cx,000H
mov ax,cx
mov bx,cx
mov ax,002H
mov cx,002H
div cx; ax/cx y almacena en al
popf
ret
4. Para cada uno de los cdigos mostrados en la gua de taller modifique cada cdigo para que
despus de realizar cada operacin aritmtica se coloquen a cero cada bit de bandera.

Ejemplo 1:
org 100h
mov ax,00H
mov bx,00H
mov ax,0FFFEH
mov bx,02H
add ax,bx; ax+bx y almacena en ax
popf
ret

Ejemplo 2:
org 100H
mov cx,000H
mov ax,cx
mov dx,cx
mov ax,01A1bH
mov dx,02f2eH
sub ax,dx; ax-dx y almacena en ax
popf
ret

Ejemplo 3:
org 100h
mov bx,0112h
mov ax,ds:[bx]
mov cx,ds:[bx+2]
mul cx
popf
ret

S-ar putea să vă placă și