1. Operandos y registros
1.1. Operandos de las instrucciones aritméticas son limitados
1.2. Número de variables limitadas
1.3. MIPS
1.3.1. Tiene 32 registros de 32 bits
1.3.2. A un grupo de 32 bits se denomina palabra
1.3.3. Representar un registro utiliza el símbolo $
1.3.4. Restricciones de alineamiento
1.3.4.1. Direcciones múltiplo de s = 4
1.3.4.2. B modulo s = 0
1.3.5. Operandos en memoria
1.3.6. Campos de una instrucción
1.3.6.1. op
1.3.6.1.1. Operación básica de la instrucción
1.3.6.2. rs
1.3.6.2.1. Registro del 1er operando
1.3.6.3. rt
1.3.6.3.1. Registro del 2do operando
1.3.6.4. rd
1.3.6.4.1. Registro del operando destino
1.3.6.5. shamt
1.3.6.5.1. Desplazamiento
1.3.6.6. funct
1.3.6.6.1. Seleccionar una operación
2. Diseño de un repertorio e instrucciones
2.1. CISC
2.1.1. Gran número de instrucciones complejas
2.2. RISC
2.2.1. Pocas instrucciones y muy básicas
2.2.2. Modos de direccionamiento
2.2.2.1. Inmediato
2.2.2.2. Indirecto con desplazamiento
2.3. Tipo de almacenamiento
2.3.1. Pila
2.3.1.1. Operandos implícitos
2.3.2. Acumulador
2.3.2.1. Uno de los operandos es implícito
2.3.3. Registros de propósito general (GPR)
2.3.3.1. Operandos se especifican de forma explícita
2.4. Tipo y tamaño de los operandos
2.5. Conjunto de operaciones soportadas
2.6. Instrucciones de control de flujo
2.6.1. Saltos condicionales
2.6.1.1. Comparaciones entre registros
2.6.2. Saltos incondicionales
2.6.3. Alternativas de salto
2.6.3.1. Direccionamiento relativo al PC
2.6.3.2. Direccionamiento indirecto con registro
3. Tipos de almacenamiento de los operandos GPR
3.1. Registro - Registro
3.1.1. 3 operandos en los registros
3.1.2. Codificaciónn sencilla
3.2. Registro - Memoria
3.2.1. Al menos 1 en los registros
3.3. Memoria - Memoria
3.3.1. 2 o 3 operandos en memoria
3.3.2. Complica la codificación
4. Modos de direccionamiento básicos
4.1. Inmediato
4.1.1. Operando dentro de la instrucción
4.2. Registro
4.2.1. ID Registro que almacena el operando
4.3. Directo
4.3.1. Dirección de memoria que almacena el operando
4.4. Indirecto
4.4.1. ID Registro ->Dirección de memoria/Operando
4.5. Indirecto con desplazamiento
4.5.1. Operando inmediato + Cont. Registro = Dir.Memoria
5. Interpretación de las direcciones de memoria
5.1. Little Endian
5.1.1. Byte menos significativo en la posición más significativa
5.2. Big Endian
5.2.1. Byte menos significativo en la posición menos significativa
5.3. Middle Endian
5.3.1. Trabaja con ambas ordenaciones
6. Representación de instrucciones del computador
6.1. Codificación del repertorio de instrucciones
6.1.1. Longitud variable
6.1.2. Longitud fija
6.1.3. Híbrida
6.2. Instrucciones tipo I(Inmmediate)
6.2.1. Load/Store
6.2.1.1. Registro fuente (RS)
6.2.1.1.1. Acceso a memoria
6.2.1.2. Registro destino(RT)
6.2.1.2.1. Registro datos
6.2.1.3. Inmediato
6.2.1.3.1. Desplazamiento dirección de memoria
6.2.2. Aritmético-lógicas
6.2.2.1. Registro fuente (RS)
6.2.2.1.1. Operando 1
6.2.2.2. Registro destino (RT)
6.2.2.2.1. Registro destino de la operación
6.2.2.3. Inmediato
6.2.2.3.1. Operando 2, directamente su valor
6.2.3. Saltos condicionales/incondicionales
6.2.3.1. Registro fuente (RS)
6.2.3.1.1. Registro condición/ dirección salto
6.2.3.2. Registro destino (RT)
6.2.3.2.1. Registro condición / No se utiliza
6.2.3.3. Inmediato
6.2.3.3.1. Desplazamiento PC / 0
6.3. Instrucciones tipo R(Register)
6.3.1. Aritmético-lógicas
6.3.1.1. Registro-Registro
6.3.1.1.1. Registro fuente (RS)
6.3.1.1.2. Registro destino (RT)
6.3.1.1.3. RD
6.3.1.1.4. sa (Shift Amount)
6.3.1.1.5. function
6.4. Instrucciones tipo J(Jump)
6.4.1. Salto incondicional y retorno de procedimiento
6.4.1.1. opCode
6.4.1.1.1. Código de la operación
6.4.1.2. Instr_index
6.4.1.2.1. offset relativo al PC
7. El lenguaje del Computador
7.1. Instrucciones
7.2. Juego de instrucciones
7.3. Hardware y compilador sencillos de construir
7.3.1. Maximizar el rendimiento
7.3.2. Minimizar el costo y la potencia
8. Operaciones Aritméticas
8.1. Von Nuemann
8.2. ALU (Unidad Aritmética Lógica)
8.2.1. Operaciones
8.2.1.1. Aritméticas
8.2.1.2. Lógicas
8.2.1.3. Desplazamiento
8.2.2. Simple sumador-restador
8.2.3. Descomposición en pasos elementales
8.2.4. Ejecuta rápidamente esos pasos
8.3. Circuitos que contienen ALUs
9. Sistemas Numéricos
9.1. Complemento a uno
9.2. Signo-magnitud
9.3. Sistemas decimales
9.4. Preferencia por el complemento a dos
10. Tipos de operadores
10.1. Circuito capaz de realizar:
10.1.1. Operaciones aritméticas de números enteros
10.1.1.1. suma
10.1.1.2. resta
10.1.1.3. multiplicación
10.1.1.4. división
10.1.2. Operaciones lógicas de bits
10.1.2.1. AND, NOT,OR, XOR, NOR
10.1.3. Operaciones de desplazamiento de bits
10.1.3.1. Desplazar o rotar
10.1.3.2. A izquierda o a derecha
10.1.3.3. Con o sin extensión de signo
11. Ámbito de aplicación del operador
11.1. General
11.1.1. Realiza diferentes operaciones
11.2. Especializado
11.2.1. Realiza una operación con cierta complejidad
11.2.2. Ejemplo: Coprocesador matemático
12. Realización del operador
12.1. Operador combinacional
12.1.1. Realiza una o varias operaciones
12.1.2. Sin memoria / Resultado se vuelca en un registro
12.1.3. Tiempo
12.2. Operador secuencial
12.2.1. Funciona por fases
12.2.2. Necesita memoria
12.2.3. Algoritmos de cálculo propio
13. Principios de Hardware
13.1. I. La simplicidad favorece la regularidad
13.2. II. Más pequeño es más rápido
13.3. III. Haz que el caso más común sea rápido
13.4. IV. Un buen diseño demanda buenos compromisos
14. Operaciones del Hardware del computador
14.1. MIPS emplea una notación rígida
14.1.1. Cada instrucción aritmética realiza una única operación
14.1.2. Siempre tiene 3 variables