Operaciones Aritméticas Ensambler
TECNOLÓGICA
NACIONAL
Técnicas Digitales II
Año 2008
Trabajo Práctico Nro 3: Assembler
J.T.P. Ing. Steiner Guillermo.
Email:gsteiner@scdt.frc.utn.edu.ar
Trabajo Práctico Nro 3: Assembler
Banderas
Nombre
Desbordamiento: Indica cuando el resultado de una operación con
signo a excedido la capacidad del uP.
Dirección: Controla la selección de incremento o decremento delos
registros DI o SI en las instrucciones de cadenas.
Interrupción: habilita la entrada de interrupción.
Signo: indica el signo del resultado de la última operación
aritmética.
Cero: indica si la última operación dio como resultado cero.
Acarreo auxiliar: ocurre cuando en una operación aritmética, se
produzco un acarreo o un préstamo entre el bit 3 y 4 del resultado.
Paridad: es un conteode unos en la última operación.
Acarreo: indica un acarreo o un préstamo en la última operación
aritmética, usado también en operaciones de corrimiento y como
indicador de error en ciertos programas.
Estado = 0
NV-No hubo
desborde
UP-Incremento
Estado = 1
OV-Desborde
DN-Decremento
DI-Interr. anulada EI-Interrupción
PL-Positivo
NG-Negativo
NZ-No Cero
NA-Sin Acarreo
ZR-CeroAC-Acarreo
PO-Impar
NC-Sin Acarreo
PE-Par
CY-Acarreo
Suma con acarreo
ADD: Esta instrucción suma el primer operador con el segundo y al resultado lo guarda en el primer operador, si
hubo acarreo lo guarda en Carry.
ADC: Realiza la misma operación que ADD incorporando también el Carry en la suma de los operadores.
CF
ADD AX,BX
AX
ADC AX,BX
AX
BX
CF
BX
AX
CFAX
Para el caso de sumar números cuya longitud supera a los 16 bits del microprocesador o que su resultado sea mayor
que 16 bits, se debe recurrir al uso de la suma con acarreo.
Esto significa, que en el caso por ejemplo de sumar dos números de 32 bits, se realiza la suma de los 16 bits menos
significativos y luego los 16 bits mas significativos junto con el acarreo.
Suma con ADC
Sumacon ADD
16 bit altos
16 bit bajos
CF
CF
CF
1
Técnicas Digitales II
Año 2008
Trabajo Práctico Nro 3: Assembler
UNIVERSIDAD
TECNOLÓGICA
NACIONAL
J.T.P. Ing. Steiner Guillermo.
Email:gsteiner@scdt.frc.utn.edu.ar
Ejercicio Nro 1
Sumar 2 nro de 32 bits contenidos en AX BX y CX DX respectivamente, guardando el resultado en AX BX.
AX BX = 0134A23Bh
CX DX = BD02E329h; sumar dos números de 32 bits
name "suma32"
org 100h
mov ax,0134
mov bx,A23B
mov cx,BD02
mov dx,E329
add bx,dx
adc ax,cx
ret
AX BX = BE378564 (Resultado)
Movimiento (Shift) común y Aritmético
SHL (Shift Left)
7
SHR (Shift Right)
7
0
0
0
0
CF
CF
Multiplicar sin signo
Dividir sin signo
SAL (Shift Arithmetic Left)
7
SAR (Shift Arithmetic Right)
7
00
0
CF
CF
Multiplicar con signo
Dividir con signo
Rotación
ROL (Rotate Left)
7
ROR (Rotate Right)
0
7
0
CF
CF
Rotación a la izquierda de 8 bits
Rotación a la derecha de 8 bits
RCL (Rotate through Carry Left)
RCR (Rotate through Carry Right)
7
0
7
0
CF
Rotación a la izquierda de 9 bits
CF
Rotación a la derecha de 9 bits
2Técnicas Digitales II
Año 2008
Trabajo Práctico Nro 3: Assembler
UNIVERSIDAD
TECNOLÓGICA
NACIONAL
J.T.P. Ing. Steiner Guillermo.
Email:gsteiner@scdt.frc.utn.edu.ar
Formato de las instrucciones
Si bien se pueden realizar corrimiento o rotaciones de 1 o más bits, solo está permitido el de 1 bit en inmediato, en
estos casos para un corrimiento de más de un bits, se debe utilizarun registro auxiliar, el CL
Ejemplos
Shift a la derecha de un 1 bit
Shift a la derecha de 4 bits
MOV CL,4
SHR BX,CL
SHR BX,1
Ejercicio Nro 2
Usando instrucciones Shift ingresar un número en AX y multiplicarlo por 7
; multiplicar por 7
name "multip7"
org 100h
mov ax,023Ah
mov bx,ax
mov cl,03
shl bx,cl
sub bx,ax
ret ; volver al sistema operativo
Resultado 0F96h
Stack...
Regístrate para leer el documento completo.