Sunteți pe pagina 1din 13

INSTRUCCIONES DE TRANSFERENCIA DE DATOS

INSTRUCCIÓN PROPÓSITO SINTAXIS DESCRIPCIÓN EJEMPLO


MOV Transferencia Mov Destino, Donde Destino es MOV
de datos entre Fuente el lugar a donde se BX,AX
celdas de moverán los datos
memoria, y fuente es el lugar
registros y donde se
acumulador. encuentran dichos
datos.
XCHG Intercambia el XCHG Destino, Cambia el valor XCHG AX,
contenido de Fuente que está guardado [BX]
dos registros, o en la fuente, con el
bien el valor del destino, y
contenido de un viceversa
registro y el de
una posición de
memoria.
IN Leer Puerto IN Rd, P Carga un dato del IN AL, DX
espacio de I/O, en
el registro Rd en el
archivo de registro.
OUT Escribir Puerto OUT P, Rr Guarda un dato del OUT DX,
registro Rr del AX
archivo de registro
en el espacio de
I/O
XLAT Traduce el XLAT tabla
contenido de un
byte a otro valor
predefinido. Usa
una tabla.
LEA Transfiere el LEA destino, El operando fuete LEA dx,
desplazamiento fuente. debe ser un [bx+si+20]
del operando operando de
fuente al memoria. El
operando operando destino
destino. es un registro, pero
no un registro de
segmento.
LDS Cargan de una LDS Rd, k Cargan en el LDS si, [AX]
sola vez el registro
desplazamiento. especificado con
reg la palabra
contenida en la
dirección dada por
mem.
LES Cargan de una LES destino, Cargan en el LES AX,
sola vez el fuente registro [BP]
segmento. especificado con
reg la palabra
contenida en la
dirección dada por
el registro de
segmento indicado.
LAHF Transfiere al LAHF Esta instrucción es
registro AH el útil para verificar
contenido de las el estado de las
banderas banderas durante la
ejecución de
nuestro programa.
SAHF Copia AH en SAHF Transfiere el
los indicadores contenido de los
bits 7, 6, 4, 2 y 0 a
los indicadores SF,
ZF, AF, PF y CF
respectivamente.
PUSH FUENTE Coloca una PUSH fuente. La instrucción
palabra en la PUSH decrementa
pila. en dos el valor de
SP y luego
transfiere el
contenido del
operando fuente a
la nueva dirección
resultante en el
registro recién
modificado.
POP DESTINO Recupera un POP, destino Esta instrucción
dato de la pila. transfiere el último
valor almacenado
en la pila al
operando destino,
después incrementa
en dos el registro
SP.
CONTROL DE BUCLES (Instrucciones simples)
INC Incrementar el INC destino La instrucción
operando. suma 1 al operando
destino y guarda el
resultado en el
mismo operando
destino.
DEC Decrementa el DEC destino Esta operación
operando resta 1 al operando
destino y almacena
el nuevo valor en el
mismo operando.
LOOP Generar un ciclo LOOP etiqueta La instrucción loop
en el programa. decrementa CX en
1, y transfiere el
flujo del programa
a la etiqueta dada
como operando si
CX es diferente a
1.
LOOPZ, Generar un ciclo LOOPE Esta instrucción
LOOPE en el programa, etiqueta decrementa CX en
1, si CX es
considerando el diferente a cero y
estado de ZF. ZF es igual a 1,
entonces el flujo
del programa se
transfiere a la
etiqueta indicada
como operando.
LOOPNZ, Generar un ciclo LOOPNE Esta instrucción
LOOPNE en el programa, etiqueta decrementa en uno
considerando el a CX y transfiere el
estado de ZF. flujo del programa
solo si ZF es
diferente a 0.
JCXZ Salto si
CX=0.
INSTRUCCIONES DE PRUEBA, COMPARACIÓN Y SALTO
TEST Comparar TEST destino, Realiza una
lógicamente los fuente. conjunción, bit por
operandos. bit, de los
operandos, pero a
diferencia de AND
esta instrucción no
coloca el resultado
en el operando
destino, solo tiene
efecto sobre el
estado de las
banderas.
CMP Comparar CMP destino, Esta instrucción
operandos. fuente resta el operando
fuente al operando
destino pero sin
que este almacene
el resultado de la
operación, solo se
afecta el estado de
las banderas.
JMP Salto JMP destino. Esta instrucción se
incondicional. utiliza para desviar
el flujo de un
programa sin tomar
en cuenta las co
ndiciones actuales
de las banderas ni
de los datos.
JE, JZ Salto JE etiqueta Salta si es igual o
condicional salta si es cero.
JNE, JNZ Salto JNE etiqueta Salta si no es igual
condicional o salta si no es
cero.
JS Salto JS etiqueta Salta si el signo El salto se
condicional, está prendido. efectúa si
toma en cuenta SF=1.
el estado de las
banderas
JNS Salto JNS etiqueta Salta si el signo El salto se
condicional, esta desactivado. efectúa si
toma en cuenta SF=0.
el estado de las
banderas
JP, JPE Salto JP etiqueta Salta si hay paridad El salto se
condicional, o salta si la paridad efectúa si
toma en cuenta es par. PF= 1.
el estado de las
banderas.
JNP, JOP Salto JNP etiqueta Salta si no hay El salto
incondicional, paridad o salta si la ocurre si
toma en cuenta paridad en non. PF=0.
el estado de las
banderas.
JO Salto JO etiqueta Salta si hay El salto se
condicional, desbordamiento. realiza si
toma en cuenta OF=1.
el estado de las
banderas.
JNO Salto JNO etiqueta Salta si no hay El salto se
condicional, se desbordamiento. efectúa si
toma en cuenta OF= 0.
el estado de las
banderas.
JB, JNAE Salto JB etiqueta Salta si está abajo
condicional. o salta si no está
arriba o si no es
igual.
JNB, JAE Salto JAE etiqueta. Salta si está arriba
condicional. o si es igual o salta
si no está abajo.
JBE, JNA Salto JBE etiqueta Salta si está abajo
condicional o si es igual o salta
si no está arriba.
JNBE, JA Brinco JA Etiqueta Después de una
condicional. comparación este
comando salta si
está arriba o salta si
no está abajo o si
no es igual.
JL, JNGE Salto JL etiqueta Salta si es menor
condicional, se que o salta si no es
toma en cuenta mayor o igual.
el signo.
JNL, JGE Salto JGE etiqueta Salta si es más
condicional, se grande o igual o
toma en cuenta salta si no es
el signo. menor que.
JLE, JNG Salto JLE etiqueta Salta si es menor o
condicional, se igual o salta si no
es más grande.
toma en cuenta
el signo.
JNLE, JG Salto JG etiqueta Salta si es más
condicional, se grande o salta si no
toma en cuenta es menor o igual.
el signo.
LLAMADO Y RETORNO DE SUBRUTINAS
CALL Para llamar a un CALL nombre Para llamar a un
procedimiento procedimiento. procedimiento y
transferirle de este
modo el control.
RET Se retorna del RET (Retorno Se retorna del
procedimiento de procedimiento
procedimiento). mediante la
instrucción RET
INSTRUCCIONES ARITMETICAS
ADICIÓN
ADD Adición de los ADD destino, Suma los dos
operandos. fuente operandos y guarda
el resultado en el
operando destino.
ADC Adición con ADC destino, Lleva a cabo la
acarreo. fuente. suma de dos
operandos y suma
uno al resultado en
caso de que la
bandera CF esté
activada, esto es,
en caso de que
exista acarreo.
AAA Ajuste ASCII AAA Convierte el
para la suma contenido del
registro AL en un
número BCD no
empaquetado.
DAA Ajuste decimal DAA Convierte el
para la suma contenido del
registro AL en un
par de valores
BCD.
SUSTRACCIÓN
SUB Substracción. SUB destino, Resta el operando
fuente fuente del destino.
SBB Substracción SBB destino, Esta instrucción
con acarreo. fuente resta los operandos
y resta uno al
resultado si CF está
activada. El
operando fuente
siempre se resta del
destino.
AAS Ajuste ASCII AAS Convierte el
para la resta resultado de la
sustracción de dos
operandos BCD no
empaquetados para
que siga siendo un
número BCD no
empaquetado.
DAS Ajuste decimal DAS Corrige el
para la resta resultado en AL de
la resta de dos
números BCD
empaquetados,
convirtiéndolo
también en un
valor BCD
empaquetado.
MULTIPLICACIÓN
MUL Multiplicación MUL fuente El ensamblador
sin signo. asume que el
multiplicando será
del mismo tamaño
que el del
multiplicador
IMUL Multiplicación IMUL fuente Este comando hace
de dos enteros lo mismo que el
con signo. anterior, solo que
si toma en cuenta
los signos de las
cantidades que se
multiplican.
AAM Ajuste ASCII AAM Corrige el
para la resultado en AX
multiplicación del producto de dos
números BCD no
empaquetados,
convirtiéndolo en
un valor BCD
también no
empaquetado.
DIVISIÓN
DIV División sin DIV fuente El divisor puede
signo. ser un byte o
palabra y es el
operando que se le
da a la instrucción.
IDIV División con IDIV fuente Consiste
signo. básicamente en lo
mismo que la
instrucción DIV,
solo que esta
última realiza la
operación con
signo.
AAD Ajuste ASCII AAD Convierte dos
para la división números BCD no
empaquetados
contenidos en AH
y AL en un
dividendo de un
byte que queda
almacenado en AL.
CONVERSIONES
CBW Conversión de CBW Copia el bit 7 del
byte en palabra registro AL en
todos los bits del
registro AH.
CWD Conversión de CWD Expande el signo
palabra a doble del registro AX
palabra. sobre el registro
DX, copiando el
bit más
significativo de
AH en todo DX.
NEG Genera el NEG destino. Esta instrucción NEG AX
complemento a genera el
2. complemento a 2
del operando
destino y lo
almacena en este
mismo operando.
TRATAMIENTO DE CADENAS
MOVC Mover un byte MOVC A, @ A MOVC mueve MOVC
de la memoria + < reg.-base > (copia) un byte de A,@A+PC.
la memoria de
código, al
acumulador.
MOVW Mover cadena. Palabras Transfiere un byte
o una palabra de la
cadena origen
direccionada por
DS: SI a la cadena
destino
direccionada por
ES: DI,
incrementando o
decrementa a
continuación los
registros SI y el DI
según el valor de
DF.
CMPC Comparar CMPC cadena Compara dos
cadenas. destino, cadena cadenas restando al
origen. origen el destino.
CPMW Comparar Palabras. Compara dos
cadenas. palabras para
indicar el registro
de segmento.
SCAC Explorar Cadena destino Resta de AX o AL
cadena. una cadena destino
direccionada por el
registro DI sobre el
segmento extra.
SCAW
LODC Cargar cadena. Cadena origen. Copia en AL o AX
una cadena de
longitud byte o
palabra
direccionada sobre
el segmento de
datos(DS) con el
registro SI
LODW Cargar cadena. Palabras. Copia en AL o AX
una cadena de
longitud byte o
palabra
direccionada sobre
el segmento de
datos(DS) con el
registro SI
STOC Almacena Cadena destino. Transfiere el
cadena. operando
almacenado en X o
AL, al destino
direccionado por el
registro DI sobre el
segmento extra.
STOW Almacena Palabras Transfiere el
cadena operando
almacenado en X o
AL, al destino
direccionado por el
registro DI sobre el
segmento extra.
REP Repetir Repetir Estas instrucciones
operación se pueden colocar
cadena. como prefijo de
otra instrucción de
manejo de cadenas,
con objeto de que
la misma se repta
un número
determinado de
veces
incondicionalmente
o hasta que se
verifique alguna
condición.
CLD Limpiar bandera CLD La instrucción
de dirección. CLD pone en cero
el bit
correspondiente a
la bandera de
dirección.
STD Activar la STD La instrucción
bandera de STD pone la
dirección. bandera DF en 1.
INSTRUCCIONES LÓGICAS
NOT Lleva a cabo la NOT destino.
negación bit por
bit del operando
destino.
AND Realiza la AND destino, Con esta
conjunción del fuente. instrucción se lleva
operado bit por a cabo la operación
bit. "y" lógica de los
dos operandos.
OR OR inclusivo OR destino, La instrucción OR
lógico. fuente. lleva a cabo, bit
por bit, la
disyunción
inclusiva lógica de
los dos operandos.
XOR OR exclusivo XOR destino, Su función es
lógico. fuente. efectuar bit por bit
la disyunción
exclusiva lógica de
los dos operandos.
DESPLAZAMIENTO, ROTACIÓN Y ADEUDOS
SHL, SAL desplazamiento Se desplazan a la
a la izquierda izquierda los bits
del operando
destino tantas
posiciones como
indique el
operando fuente.
SHR Desplazamiento La instrucción shr
a la derecha. funciona de la
misma forma que
shl, pero
desplazando los
bits a la derecha en
lugar de a la
izquierda.
SAR Desplazamiento Esta instrucción
aritmético a la desplaza los bits
derecha. del operando
destino a la
derecha tantos bits
como indique el
operando fuente.
ROL Rotación a la ROL destino, Rota a la izquierda
izquierda contador los bits del
operando destino el
número de bits
especificado en el
segundo operando,
que puede ser 1 ó
CL previamente
cargado con el
valor del número
de veces.
ROR Rotación a la ROR destino, Rota a la derecha
derecha contador los bits del
operando destino el
número de bits
especificado en el
segundo operando.
Si el número de
bits es 1 se puede
poner
directamente, en
caso contrario debe
ponerse a través de
CL
RCL Rotación a la RCL destino, Rotar a la izquierda
izquierda con contador los bits del
acarreo. operando destino
junto con el
indicador de
acarreo CF el
número de bits
especificado en el
segundo operando.
RCR Rotación a la RCR destino, Rotar a la derecha
derecha con contador los bits del
acarreo operando destino
junto con el
indicador de
acarreo CF el
número de bits
especificado en el
segundo operando.
CLC Limpiar bandera CLC Esta instrucción
de acarreo. apaga el bit
correspondiente a
la bandera de
acarreo, o sea, lo
pone en cero.
STC Activar la STC Esta instrucción
bandera de pone la bandera CF
acarreo. en 1.
INSTRUCCIONES DE PILA
PUSH Coloca una PUSH fuente. La instrucción
palabra en la PUSH decrementa
pila. en dos el valor de
SP y luego
transfiere el
contenido del
operando fuente a
la nueva dirección
resultante en el
registro recién
modificado.
POP Recupera un POP destino. Esta instrucción
dato de la pila. transfiere el último
valor almacenado
en la pila al
operando destino,
después incrementa
en dos el registro
SP.
PUSHF Coloca el valor PUSHF Este comando
de las banderas decrementa en 2 el
en la pila. valor del registro
SP y luego se
transfiere el
contenido del
registro de
banderas a la pila,
en la dirección
indicada por SP.
POPF Extrae las POPF Este comando
banderas transfiere bits de la
almacenadas en palabra
la pila. almacenada en la
parte superior de la
pila hacia el
registro de
banderas.
INSTRUCCIONES DEL MICROPROCESADOR
NOP No Operación NOP No realiza ninguna NOP
operación.
Generalmente se (PC)<= (PC)
utiliza para obtener +1
demoras cortas, ya
que en su ejecución
se invierte un ciclo
máquina.
HTL Parada hasta HLT El procesador se
interrupción o detiene hasta que
reset se restaura el
sistema o se recibe
una interrupción.
Como en los PC se
producen
normalmente 18,2
interrupciones de
tipo 8 por segundo
(del temporizador)
algunos
programadores
utilizan HLT para
hacer pausas y
bucles de retardo.
Sin embargo, el
método no es
preciso y puede
fallar con ciertos
controladores de
memoria.
WAIT Espera WAIT Provoca la espera
del procesador
hasta que se
detecta una señal
en la patilla TEST.
LOOK Bloquea los LOCK Es una instrucción
buses que se utiliza en
aplicaciones de
recursos
compartidos para
asegurar que no
accede
simultáneamente a
la memoria más de
un procesador.
Cuando una
instrucción va
precedida por
LOCK, el
procesador bloquea
inmediatamente el
bus, introduciendo
una señal por la
patilla LOCK.
ESC Salida a un ESC código Se utiliza en ESC 21,ax
coprocesador operación, combinación con
origen procesadores
externos, tales
como los
coprocesadores de
coma flotante o de
E/S, y abre al
dispositivo externo
el acceso a las
direcciones y
operandos
requeridos. Al
mnemónico ESC le
siguen los códigos
de operación
apropiados para el
coprocesador así
como la
instrucción y la
dirección del
operando
necesario.
INSTRUCCIONES DE INTERRUPCIÓN
STI Activar la STI La instrucción
bandera de activa la bandera
interrupción. IF, esto habilita las
interrupciones
externas
enmascarables (las
que funcionan
únicamente cuando
IF = 1).
CLI Limpiar bandera CLI CLI pone en cero
de interrupción la bandera de
interrupciones,
deshabilitando así
aquellas
interrupciones
enmascarables.
INT Ingresar una INT numero de Donde número de
Interrupción. interrupción. interrupción es un
número del 0 al
255.
INTO Interrupción por INTO Genera una
desbordamiento. interrupción de
tipo 4 (INT 4) si
existe
desbordamiento
(OF=1). De lo
contrario se
continúa con la
instrucción
siguiente.
IRET Retorno de IRET Devuelve el
interrupción control a la
dirección de
retorno salvada en
la pila por una
interrupción previa
y restaura los
indicadores que
también se
introdujeron en la
pila. En total, se
sacan las 3
palabras que fueron
colocadas en la pila
cuando se produjo
la interrupción.

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