tiene un repertorio
de instrucciones
dividido en varios
grupos como:
Instrucciones de
Transferencia de
Datos
Estas instrucciones
mueven datos de una
parte a otra del
sistema; desde y hacia
la memoria principal,
de y a los registros de
datos, puertos de E/S y
registros de
segmentación.
MOV transfiere; XCHG
intercambia; IN entrada; OUT
salida; XLAT traduce usando una
tabla; LEA carga la dirección
efectiva; LDS carga el segmento de
datos; LES carga el segmento extra;
LAHF carga los indicadores en AH;
SAHF guarda AH en los indicadores;
PUSH FUENTE (sp) fuente; POP
DESTINO destino (sp).
Instrucciones Simples
Estas posibilitan el grupo de
control más elemental de nuestros
programas. Un bucle es un bloque
de código que se ejecuta varias
veces. Hay 4 tipos de bucles
básicos: Sin fin, por conteo, hasta y
mientras
INC incrementar; DEC
decrementar; LOOP realizar un
bucle; LOOPZ,LOOPE realizar un
bucle si es cero;
LOOPNZ,LOOPNE realizar un
bucle si no es cero; JCXZ salta si
CX es cero
Instrucciones de Prueba,
Comparacion y Resultado
Este grupo es una
continuación del anterior,
incluye las siguientes
instrucciones:
TEST verifica; CMP compara; JMP salta; JE, JZ salta si es
igual a cero; JNE, JNZ salta si no igual a cero; JS salta si
signo negativo; JNS salta si signo no negativo; JP, JPE salta
si paridad par; JNP, JOP salta si paridad impar; JO salta si
hay capacidad excedida; JNO salta si no hay capacidad
excedida; JB, JNAE salta si por abajo (no encima o igual);
JNB, JAE salta si no está por abajo (encima o igual); JBE,
JNA salta si por abajo o igual (no encima); JNBE, JA salta si
no por abajo o igual (encima); JL, JNGE salta si menor que
(no mayor o igual); JNL, JGE salta si no menor que (mayor
o igual); JLE, JNG salta si menor que o igual (no mayor);
JNLE, JG salta si no menor que o igual (mayor).
Instrucciones de Llamado y
Retorno de Subrutinas
Para que los programas
resulten eficientes y
legibles tanto en lenguaje
ensamblador como en
lenguaje de alto nivel,
resultan indispensables
las subrutinas:
CALL llamada a subrutina;
RET retorno al programa o
subrutina que llamó
Instrucciones Aritmeticas
Dividida en 6 Grupos (solo se
nombran los grupos y un
ejemplo de cada una
Grupo de adición: ADD suma; ADC suma
con acarreo; AAA ajuste ASCII para la suma;
DAA ajuste decimal para la suma.
Grupo de sustracción: SUB resta; SBB resta
con acarreo negativo; AAS ajuste ASCII para la
resta; DAS ajuste decimal para la resta.
Grupo de multiplicación: MUL
multiplicación; IMUL multiplicación
entera; AAM ajuste ASCII para la
multiplicación.
Grupo de división: DIV
división; IDIV división entera;
AAD ajuste ASCII para la
división.
Conversiones: CBW pasar octeto a
palabra CWD pasar palabra a doble
palabra NEG negación
Permiten el movimiento, comparación o
búsqueda rápida en bloques de datos:
MOVC transferir carácter de una cadena;
MOVW transferir palabra de una cadena;
CMPC comparar carácter de una cadena;
CMPW comparar palabra de una cadena;
SCAC buscar carácter de una cadena; SCAW
buscar palabra de una cadena; LODC cargar
carácter de una cadena; LODW cargar
palabra de una cadena; STOC guardar
carácter de una cadena; STOW guardar
palabra de una cadena; REP repetir; CLD
poner a 0 el indicador de dirección; STD
poner a 1 el indicador de dirección.
Instrucciones Lógicas
Son operaciones bit a bit
que trabajan sobre octetos
o palabras completas
NOT negación AND producto
lógico; OR suma lógica; XOR suma
lógica exclusiva
Instrucciones de
Desplazamiento,
Rotacion y Adeudos
Básicamente
permiten
multiplicar y
dividir por
potencias de
2
SHL, SAL desplazar a la izquierda (desplazamiento
aritmético); SHR desplazar a la derecha; SAR desplazamiento
aritmético a la derecha; ROL rotación a la izquierda; ROR
rotación a la derecha; RCL rotación con acarreo a la izquierda;
RCR rotación con acarreo a la derecha; CLC borrar acarreo;
STC poner acarreo a 1
Instrucciones de Pila
Una de las funciones de la pila del sistema es la
de salvaguardar (conservar) datos (la otra es la
de salvaguardar las direcciones de retorno de las
llamadas a subrutinas):
PUSH introducir; POP
extraer; PUSHF introducir
indicadores; POPF extraer
indicadores
Instrucciones de
Control del
Microprocesador
Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjunción
con otros procesadores:
STI poner a 1 el indicador de interrupción;
CLI borrar el indicador de interrupción; INT
interrupción; INTO interrupción por
capacidad excedida (desbordamiento); IRET
retorno de interrupción.