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.