Documente Academic
Documente Profesional
Documente Cultură
FACULTAD DE INGENIERIA
Objetivo general:
Objetivos especficos:
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
El tamao del inmediato puede ir desde 8 bits hasta el tamao del primer operando, 32
bits como mximo.
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
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
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