Conjunto De Instrucciones Del 8086
Las instrucciones presentadas en esta sección funcionan como se describe en el 8086/8088, el 80286 y el 80386.
AAA
Aritmética
ASCII Adjust for Addition
(Ajuste ASCII para suma): AAA cambia el contenido de AL a un número decimal no empacado valido con el nibble de alto orden en ceros.
Banderas afectadas
AF, CF, OF(no definida), SF(nodefinida), ZF(no definida), PF(no definida).
AAD
Aritmética
ASCII Adjust for División
(Ajuste ASCII para división): AAD multiplica el contenido de AH por 10, añade el resultado al contenido del AL y ubica dicho resultado en AL.
Luego, la instrucción pone AH en 0. Esta instrucción se usa antes de dividir números decimales no empacados.
Banderas afectadas:
SF, ZF, PF, OF(no definida),AF(no definida), CF(no definida).
AAM
Aritmética
ASCII Adjust for Multiplication
(Ajuste ASCII para multiplicación): Después de multiplicar dos números decimales no empacados, se utiliza AAM a fin de corregir el resultado para un número decimal no empacado. Para que la instrucción trabaje adecuadamente, los nibbles de alto orden de cada número multiplicado deben ponerse en 0.
Banderasafectadas
SF, ZF, PF, OF(no definida),
AF (no definida),
CF (no definida).
AAS
Aritmética
ASCII Adjust for Subtraction
(Ajuste ASCII para resta): AAS corrige el resultado de una resta decimal no empacada anterior, de tal forma que el valor en AL es un verdadero número decimal no empacado.
Banderas afectadas
AF, CF, OF(no definida), SF(no definida), ZF(no definida), PF(nodefinida).
ADC
Aritmética
Add with carry
(Sumar con acarreo): ADC suma el contenido del operando fuente al operando de destino (y almacena el resultado en este ultimo). Si la bandera de acarreo esta activada, el resultado cambia en incrementos de l. En esta rutina se supone que los valores que se están añadiendo son binarios.
Banderas afectadas
OF, SF, ZF, AF, PF, CF
Ejemplos decodificación
ADC AX, BX ;AX=AX+BX+CF
ADC AX, TEMP ;AX=AX+TEMP+CF
ADC SUM, BX ;SUM=SUM+BX+CF
ADC CL,10 ;CL=CL+ 10+CF
ADC AX, TEMP [BX] ;Direcc. indirecta
ADD
Aritmética
Add:
(Sumar):ADD añade el contenido del operando fuente al operando de destino (y almacena el resultado en este ultimo). En esta rutinase supone que los valores que están añadiendo son binarios.
Banderas afectadas
OF, SF, ZF, AF, PF, CF
Ejemplos de codificación
ADD AX, BX ;AX=AX+BX
ADD AX, TEMP ;AX=AX+TEMP
ADD SUM, BX ;SUM=SUM+BX
ADD CL,10 ;CL=CL+10
ADD AX, TEMP [BX] ;Direcc. indirecta
AND
Manipulación de bits
Logical AND on Bits
(Ylógico sobre bits): Esta instrucción realiza un Y lógico de los operandos y almacena el resultado en el operando de destino. Cada bit del byte o palabra resultante se pone en 1 solo si el bit correspondiente de cada operando se pone en 1.
Banderas afectadas
OF, SF, ZF, PF, CF, AF(no definida)
Ejemplos de codificación
AND AX, BX ;
AND AX, TEMP ;TEMP debe seruna palabra
AND SUM, BX ;SUM debe ser una palabra
AND Cl,OOOOllllb ;Nibble alto en cero
AND AX, TEMP[BX] ;Dirección indirecta
CALL
Transferencia de control
Perform Subroutine
(Ejecutar una subrutina): CALL hace lo siguiente: 1)mete la dirección de desplazamiento de la siguiente instrucción en la pila; 2)si el procedimiento llamado sedeclara como far (lejano),mete la dirección de segmento de la siguiente instrucción en la pila; 3)carga IP (apuntador a instrucción) con la dirección de desplazamiento del procedimiento llamado; y 4)si el procedimiento llamado se declara como far, carga CS (segmento de código) con la dirección de segmento del procedimiento llamado.
La ejecución continua entonces en la recién cargada dirección...
Regístrate para leer el documento completo.