Arquitectura Q
Organización de Computadoras 2019
Universidad Nacional de Quilmes
1. Caracterı́sticas
Bus de datos de 16 bits.
Bus de direcciones de 16 bits: Espacio direccionable de 65536 celdas.8 registros de uso
general de 16 bits: R0..R7.
Program Counter (PC) de 16 bits.
Stack Pointer (SP) de 16 bits. Comienza en la dirección FFEF. Flags: Z, N, C, V (Zero,
Negative, Carry, oVerflow).
Todas las instrucciones alteran los Flags excepto MOV, CALL, RET, JMP,Jxx, PUSH y
POP.
De las que alteran los Flags, todas dejan C y V en 0 a excepción de ADD, SUB y CMP.
Todas las operaciones en la ALU se realizan en sistema complemento a 2.
2. Codificación de modos de direccionamiento
Modo Codificación Sintaxis
Inmediato 000000 0xHHHH
Directo 001000 [0xHHHH]
Indirecto 011000 [[0xHHHH]]
Registro 100rrr Rx
Indirecto Registro 110rrr [Rx]
Las instrucciones que tienen en Modo Destino operandos del tipo Inmediatoson
consideradas como invalidas por el procesador.
3. Formatos de instrucción
Tipo 1: Instrucciones de 2 operandos
Ejemplos:
MOV [0x011A], 0xFF00
ADD [0x011A], [0x011B]
El siguiente es el formato de una instrucción de 2 operandos. Los tamaños de los
campos están expresados en bits.
Cod Op (4) Modo Destino(6) Modo Origen(6) Destino(16) Origen(16)
donde los campos Destino y Origen son opcionales. A continuación la tabla con los códigos de
instrucciones:
1
Operación Cod Op Efecto
MUL 0000 {R7, Dest} ← Dest * Origen
MOV 0001 Dest ← Origen
ADD 0010 Dest ← Dest + Origen
SUB 0011 Dest ← Dest - Origen
AND 0100 Dest ← Dest AND Origen
OR 0101 Dest ← Dest OR Origen
CMP 0110 Modifica los Flags según el resultado de Dest
- Origen
DIV 0111 Dest ← Dest % Origen ( % denota la división
entera)
Tipo 2: Instrucciones de 1 operando
Ejemplos:
NOT [0x011A]
JMP unaEtiqueta
CALL unaEtiqueta
Tipo 2.a: Las instrucciones de 1 operando destino Tienen el siguiente formato(los tamaños de
los campos están expresados en bits):
Cod Op (4) Modo Destino (6) Relleno Destino(16)
donde el campo Relleno tiene la cadena 000000 y el campo Destino es opcional. Las
instrucciones con este formato son:
Operación Cod Op Efecto
NOT 1001 Dest ← NOT Dest (bit a bit)
Tipo 2.b: Instrucciones de 1 operando origen Tienen el siguiente formato (los tamaños de los
campos están expresados en bits):
Cod Op(4) Relleno Modo Origen(6) Origen(16)
donde el campo Relleno tiene la cadena 000000 y el campo Origen es opcional. Las
instrucciones con este formato son:
Operación Cod Op Efecto
JMP 1010 PC ← Origen
CALL 1011 [SP] ← PC; SP ← SP - 1; PC ← Origen
2
Tipo 3: Instrucciones sin operandos
Las instrucciones sin operandos tienen el siguiente formato (los tamaños de los campos están
expresados en bits):
Cod Op (4) Bits no utilizados (12)
Las instrucciones con este formato son:
Operación CodOp Bits no utilizados Efecto
RET 1100 0000 0000 0000 PC ← [SP+1]; SP ← SP + 1
Tipo 4: Saltos condicionales
Ejemplos de uso:
JE una etiqueta
JLE otra etiqueta
Prefijo (1111) Cod Op (8) Desplazamiento(8)
Las instrucciones de este tipo son saltos relativos condicionales. Si al evaluar la condición de
salto en los Flags el resultado es 1, el efecto es incrementar al PC con el valor de los 8
bits de desplazamiento, representado en complemento a 2 de 8 bits. En caso contrario la
instrucción no hace nada.
Codop Operación Descripción Condición de Salto
0001 JE Igual / Cero Z
1001 JNE No igual not Z
0010 JLE Menor o igual Z or ( N xor V )
1010 JG Mayor not ( Z or ( N xor V ) )
0011 JL Menor N xor V
1011 JGE Mayor o igual not ( N xor V )
0100 JLEU Menor o igual sin signo C or Z
1100 JGU Mayor sin signo not ( C or Z )
0101 JCS Carry / Menor sin signo C
0110 JNEG Negativo N
0111 JVS Overflow V