Conjunto de instrucciones
Las instrucciones están agrupadas en los siguientes
grupos y subgrupos:
1.-
TRANSFERENCIA DE DATOS.
a) De propósito general.
b) Entrada/Salida.
c) De operando dirección.
d) Transferencia de banderas.
2.-INSTRUCCIONES ARITMENTICAS.
a)
Suma.
b) Resta.
c) Multiplicación.
d) División.
3.-MANIPULACION DE BIT.
a) Lógicas.
b) Desplazamiento.
c) Giro.
4.-DE CADENA.
5.-DE TRANSFERENCIA DE PROGRAMA.
a) Incondicional.
b) Condicional.
c) Control de iteraciones.
6.-DE INTERRUPCIONES.
7.-CONTROL DEL PROCESADOR.
A) Operaciones con banderas.
b) Sincronización extrema.
c) NOP.
CONJUNTO DE
INSTRUCCIONES.
1)
TRANSFERENCIA DE DATOS.
A) DE
PROPOSITO GENERAL
1.- MOV
destino, Fuente ;Mueve datos
2.- PUSH
fuente ;Mete
datos a la Pila
3.- POP
destino ;Saca datos de
la Pila
4.- XCHG
destino, fuente ;Intercambia
contenidos
5.- XLAT ;Traduce
(Uso para tablas)
B) GRUPO
DE ENTRADA-SALIDA.
1.- IN
acumulador, puerto ;Lee un dato
del Puerto
2.- OUT
puerto, acumulador ;Saca un dato
por el puerto
C) DE
OPERANDO DE DIRECCION.
1.- LEA
destino, fuente ;Carga
una dirección efectiva
2.- LDS
destino, fuente ;Carga el
reg. De segmento datos
3.- LES
destino, fuente ;Carga el reg. De segmento extra
D) TRANSFERENCIA
DE BANDERAS.
1.- LAHF ;Carga
al reg. AH con las banderas
2.- SAHF ;Envía el reg AH al reg. de Banderas
3.- PUSHF ;Guarda las banderas en el stack
4.- POPF ;Lo
que saca del stack lo pone en el
reg.
De banderas
2)
INSTRUCCIONES ARITMETICAS
A) DE
SUMA
1.- ADD
destino, fuente ;Suma de
números binarios
2.- ADC
destino, fuente ;Suma con
carry
3.- INC
destino ; Incrementos
de 1
4.- DAA
;Ajuste
decimal después de sumar
5.- AAA
;Ajuste
ASCII después de sumar
B) DE
RESTA
1.- SUB
destino, fuente ;resta
valores binarios
2.- SBB
destino, fuente ;resta con
borrow
3.- CMP
destino, fuente ;compara
datos
4.- DAS
;Ajuste
decimal después de restar
5.- AAS
;Ajuste
ASCII después de restar
C) DE MULTIPLICACION.
1.- MUL
fuente (sin signo) ;Multiplica
sin signo
2.- IMUL
fuente (con signo) ;Multiplica con signo(enteros)
3.- AAM
;Ajuste
ASCII para la multiplicación
D) DIVISION
1.-
DIV fuente (sin signo) ;Divide sin signo
2.- IDIV
fuente (con signo) ;Divide con signo
3.- AAD
;Ajuste
ASCII para la división
3)
INSTRUCCIONES DE MANIPULACION DE
BITS
A) LOGICAS
1.-
NOT destino ;Negación lógica (No)
2.- AND
destino, fuente ;Conjunción lógica
(y)
3.- OR
destino, fuente ;Disyunción
lógica (o)
4.- XOR
destino, fuente ;OR
Exclusiva
5.- TEST
destino, fuente ;Prueba
bits
6.- NEG
destino ;Negación
B) DE
DESPLAZAMIENTO
1.-
SHL destino, contador ;Corrimiento lógico a la izquierda
2.- SAL
destino, contador ;Corrimiento
algebraico a la izq.
3.- SHR
destino, contador ;Corrimiento
lógico a la Derecha
4.- SAR
destino, contador ; Corrimiento
algebraico a la Der.
C) GIROS
1.-
ROL destino, contador ;Rotación a la izquierda
2.- ROR
destino, contador ;Rotación a la
derecha
3.- RCL
destino, contador ; Rotación a
la izquierda con carry
4.- RCR
destino, contador ; Rotación a
la iderecha con carry
4)
INSTRUCCIONES DE CADENA
1.-
MOVS cadena-destino,
cadena-fuente ; Mueve cadenas
MOVSB ----- MOVSW
2.-
LODS cadena-fuente ;carga
cadena
3.-
STOS cadena-destino,
cadena-fuente ;Almacena una
cadena
STOSB -----STOSW
4.-
CMPS cadena-destino,
cadena-fuente ;Compara
cadenas
CMPSB ------CMPSW
5.-
SCAS cadena-destino ;Explora
una cadena
SCASB ------SCASW
5) INSTRUCCIONES DE TRANSFERENCIA DE PROGRAMA
A)
TRANSFERENCIA INCONDICIONAL
1.- CALL
destino ;llama
a un procedimiento
2.- RET (RETN, RETF) ;regresa de un procedimiento
3.- JMP
destino ;Salto
incondicional
B)
TRANSFERENCIA CONDICIONAL
1.- JB/JNAE
(Salta si es bajo / no arriba ni igual)
CF=1
2.- JAE/JNB
(Salta si esta arriba o igual / no esta bajo) CF=0
3.- JBE/JNA
(Salta si es bajo ó igual / no esta arriba) CF=1 o ZF=1
4.- JA/JNBE
(Salta si esta arriba / no bajo ni igual) CF=0 y ZF=0
5.- JE/JZ (Salta si fueron iguales) ZF=1
6.- JNE/JNZ
(Salta si no es igual a) ZF=0
7.- JL/JNGE
(menor/no mas grande ni igual) SF diferente de OF
8.- JGE/JNL
(mas grande o igual /no menor)
SF=OF
9.- JLE/JNG
(menor o igual/no mas grande)
ZF=1 o SF diferente
de 0F.
10.- JG/JNLE (mas grande/no menos ni igual) ZF=0 o SF=OF
11.- JP/JPE (paridad puesto/si hay paridad
par) PF=1
12.- JNP/JPO (paridad no puesta/ paridad impar) PF=0
13.- JS (bit de signo puesto)
S=1
14.- JNS (bit de signo no puesto) SF=0
15.- JC (carry puesto) CF=1
16.-
JNC (carry no puesto) CF=0
17.-
JO (sobreflujo
puesto) OF=1
18.-
JNO (sobreflujo no
puesto) OF=1
C)
CONTROL DE ITERACIONES
1.- LOOP ETIQ ; Repetir hasta que CX=0
2.- LOOPE/LOOPZ ETIQ ;Repetir
hasta que CX=0 o Z=1
3.- LOOPNE/LOOPNZ ETIQ ;Rep.
hasta que CX=0 o Z=0
4.- JCXZ ETIQ ;Salta si CX=0
6)
INSTRUCCIONES DE INTERRUPCION
1.-
INT vector ;petición
de Interrupción
2.-
IRET ;Regreso de una interrupción
7)
INSTRUCCIONES DE CONTROL DEL
PROCESADOR
a. OPERACIONES
CON BANDERAS
1.- STC
Pone la bandera de carry C=1
2.- CLC
Limpia la bandera de carry C=0
3.- CMC
Complementa la bandera de carry
4.- STD
Pone la bandera de dirección D=1
5.- CLD
Limpia la bandera de dirección D=0
6.- STI
Pone la bandera de interrupción habilitada IF=1
7.- CLI Limpia la bandera de interrupción
habilitada IF=0
b.
instrucciones
de control del procesador
1.- HLT
Pone
al micro en estado estático.
2.- WAIT
Entra en edo. de espera hasta que se active la línea
TEST.
8)
INSTRUCCIONES DE CONVERSION
1.- CBW Conversión de Byte a palabra
2.- CWD
Conversión de palabra a doble palabra