Вы находитесь на странице: 1из 9

Nmeros BCD

Instrucciones Aritmticas
Instrucciones BCD
El procesador provee instrucciones especialmente
diseadas para hacer conversiones a y de un formato
BCD, llamadas instrucciones de Ajuste ASCII y
Ajuste decimal.
Se usan los trminos:
Ajuste ASCII, para referirse a BCD no empaquetado.
Decimal, para referirse a BCD empaquetado.
BCD no empaquetado
Cuando un calculo usa dos valores de un digito,
produce un resultado de dos dgitos.
Las instrucciones AAA, AAS, AAM y AAD, colocan
el primer dgito en AL y el segundo digito en AH,
modificando las banderas de carry (CF) y Bandera
auxiliar (AF).
Instruccin: AAA. Ajuste ASCII de AL despus de adicin.
Propsito: Usada para ajustar el resultado de la suma de dos nmeros
BCD colocndolo en AL, si el nibble bajo en AL contiene un valor > 9 o
si se activa AF, AH se incrementa en UNO y se le suman 6 a AL. AAA
pone el nibble superior de AL en 0.
Sintaxis: AAA
Flags: AF y CF son 0 si el valor en AL es < 9, si AL es > 9 son puestas
a 1.
Comentarios: Esta instruccin es utilizada cuando se suman nmeros
BCD no empaquetados (un nmero o digito BCD por byte) Luego de
sumar 2 valores BCD no empaquetados con ADD colocando el
resultado en AL, se deber llamar a AAA para ajustar la suma en un
digito vlido BCD.
Ejemplo:
xor ax, ax
mov ax, a ;Carga 9
mov bx, b ;Carga 8
add al, bl ;Suma 09h + 08h es 11
aaa ;Ajusta 11 como: AH = 01, AL = 07
BCD Empaquetado
Son nmeros decimales, en donde 2 nmeros
son puestos, uno en la parte alta del byte y el
otro en la parte baja.
Hay instrucciones para realizar el ajuste despus
de la suma y la resta.
Para la multiplicacin y divisin es necesario
implementar las rutinas.
Instrucciones BCD empaquetadas
Para el clculo de nmeros BCD empaquetados, se
debern realizar los clculos aritmticos de 8 bits sobre
cada byte de manera separada, colocando el resultado en
AL, despus de cada operacin, deber usar la instruccin
de ajuste decimal correspondiente para ajustar el
resultado.

El procesador proporciona las instrucciones DAA (Ajuste
decimal despus de la suma) y DAS ((Ajuste decimal
despus de la resta).
Instruccin: DAA, Ajuste decimal en AL despus de la adicin.
Propsito: sela despus de sumar dos nmeros BCD empaquetados
para convertir el resultado (asumiendo que esta en AL y es menor que
100), en un valor BCD. Si el nibble bajo en AL contiene un valor > 9 y
AF = 1, suma 6 a AL, despus de esto, si AL > 9Fh o si CF = 1 suma
60h a AL.
Sintaxis: DAA
Flags: AF = 1, si el nibble bajo de AL excede 9. Si AL > 9Fh luego del
primer ajuste, CF = 1. Las banderas SF, ZF y PF son tambin
afectadas por el resultado del ajuste.
Comentarios: De igual forma que AAA ajusta el resultado de sumar no
empaquetado BCD, DAA ajusta el resultado de sumar 2 nmeros BCD
empaquetados y de esta forma mantener BCD vlido.
Ejemplo:
xor ax, ax
mov ax, f ;Carga 39 y 88 como BCD empaquetados
add al, ah ;Suma 39 + 88 = 127
daa ;Ajusta 0C1h a 127 como BCD empaquetado
;Pone en al = 27 y en CF = 1

Instruccin:
Propsito:

Sintaxis:

Flags:

Comentarios:

Ejemplo:

Вам также может понравиться