set instr MSX88

Anuncio
Arquitectura de Computadoras - Plan 2003
Facultad de Informática - UNLP
SET DE INSTRUCCIONES DEL SIMULADOR MSX88
INSTRUCCIONES DE TRANSFERENCIA DE DATOS
INSTRUCCIÓN
COMENTARIO
OPERACIÓN
FLAGS
OBS
I Z S O C A P
MOV dest,fuente
PUSH fuente
POP dest
PUSHF
POPF
IN dest,fuente
OUT dest,fuente
(dest)←(fuente)
(SP)←(SP)-2;[SP+1:SP] ←(fuente)
(fuente)←[SP+1:SP]; (SP)←(SP)+2
(SP)←(SP)-2;[SP+1:SP] ←(flags)
(flags)←[SP+1:SP]; (SP)←(SP)+2
(dest)←(fuente)
(dest)←(fuente)
-
Copia fuente en dest
Carga fuente en el tope de la pila
Desapila el tope de la pila y lo carga en dest
Apila los flags
Desapila los flags
Carga el valor en el puerto fuente en dest
Carga en el puerto dest el valor en fuente
-
-
-
-
-
-
1
2
2
3
4
INSTRUCCIONES ARITMETICAS
INSTRUCCIÓN
COMENTARIO
OPERACIÓN
FLAGS
OBS
I Z S O C A P
ADD dest,fuente
ADC dest,fuente
SUB dest,fuente
SBB dest,fuente
CMP dest,fuente
NEG dest
INC dest
DEC dest
(dest)← (dest)+(fuente)
(dest)← (dest)+(fuente)+C
(dest)← (dest)-(fuente)
(dest)← (dest)-(fuente)-C
(dest)-(fuente)
(dest)← CA2(dest)
(dest)← (dest)+1
(dest)← (dest)-1
-
INSTRUCCIONES LOGICAS
INSTRUCCIÓN
COMENTARIO
OPERACIÓN
FLAGS
OBS
I Z S O C A P
AND dest,fuente
OR dest,fuente
XOR dest,fuente
NOT dest
(dest)← (dest) AND (fuente)
(dest)← (dest) OR (fuente)
(dest)← (dest) XOR (fuente)
(dest)← CA1(dest)
-
Suma fuente y dest
Suma fuente, dest y flag C
Resta fuente a dest
Resta fuente y flag C a dest
Compara fuente con dest
Negativo de dest
Incrementa dest
Decrementa dest
Operación fuente AND dest bit a bit
Operación fuente OR dest bit a bit
Operación fuente XOR dest bit a bit
Complemento a 1de dest
INSTRUCCIONES DE TRANSFERENCIA DE CONTROL
INSTRUCCIÓN
COMENTARIO
CALL etiqueta
RET
JZ etiqueta
JNZ etiqueta
JS etiqueta
JNS etiqueta
JC etiqueta
JNC etiqueta
JO etiqueta
JNO etiqueta
JMP etiqueta
Llama a subrutina cuyo inicio es etiqueta
Retorna de la subrutina
Salta si el último valor calculado es cero
Salta si el último valor calculado no es cero
Salta si el último valor calculado es negativo
Salta si el último valor calculado no es negativo
Salta si el último valor calculado produjo carry
Salta si el último valor calculado no produjo carry
Salta si el último valor calculado produjo overflow
Salta si el último valor calculado no produjo overflow
Salto incondicional a etiqueta
OPERACIÓN
Si Z=1, (IP)←mem
Si Z=0, (IP)←mem
Si S=1, (IP)←mem
Si S=0, (IP)←mem
Si C=1, (IP)←mem
Si Z=1, (IP)←mem
Si O=1, (IP)←mem
Si O=0, (IP)←mem
(IP)←mem
INSTRUCCIONES DE MANEJO DE INTERRUPCIONES
INSTRUCCIÓN
COMENTARIO
INT N
IRET
CLI
STI
Salva los flags y ejecuta la interrupción por software N
Retorna de la interrupción y restablece los flags
Inhabilita interrupciones enmascarables
Habilita interrupciones enmascarables
INSTRUCCIONES DE CONTROL
INSTRUCCIÓN
COMENTARIO
NOP
HLT
No hace nada
Detiene la ejecución del microprocesador hasta que llegue una interrupción externa
X
X
X
X
X
X
X
X
X
X
X
-
X
X
X
X
X
X
X
X
X
X
X
-
X
X
X
X
X
X
X
X
X
X
X
-
X
X
X
X
X
X
-
X
X
X
-
X
X
X
X
X
X
X
X
X
X
X
-
X
X
X
X
X
X
X
X
X
X
X
-
1
1
1
1
1
5
5
5
1
1
1
5
FLAGS
OBS
I Z S O C A P
-
-
-
-
-
-
-
6
6
6
6
6
6
6
6
6
6
FLAGS
OBS
I Z S O C A P
0
1
0
1
-
-
-
-
-
-
-
FLAGS
OBS
I Z S O C A P
-
-
-
-
-
-
-
-
1.Las posibilidades para dest/fuente son: reg/reg, reg/mem, reg/op.inm, mem/reg, mem/op.inm. mem puede ser una etiqueta (dir.directo) o
[BX], siendo (BX) una dirección de memoria (dir.indirecto).
2.dest y fuente solo pueden ser registros de 16 bits.
3. Las posibilidades para dest/fuente son: AL/mem, AX/mem, AL/DX, AX/DX. mem debe ser una dirección entre 0 y 255. Puede ser un
operando inmediato o una etiqueta.
4. Las posibilidades para dest/fuente son: mem/AL, mem/AX, DX/AL, DX/AX. mem debe ser una dirección entre 0 y 255. Puede ser un
operando inmediato o una etiqueta.
5.dest solo puede ser mem o reg. mem puede ser una etiqueta (dir.directo) o [BX], siendo (BX) una dirección de memoria (dir.indirecto).
6.mem es la dirección de memoria llamada etiqueta.
Descargar