Hola! Estoy teniendo unas dudas con el ultimo ejercicio de Arquitectura y sistemas operativos. Ejercicio sobre Assembly:
Alguien podria darme una guia paso a paso de como hacerlo? O decirme si voy bien?
Definiciones:
PC (Program Counter): Indica la siguiente instrucción a ejecutar.
AC (Acumulador): Registro para realizar operaciones (sumas, etc).
IR (Instruction Register): Guarda la instrucción actual que se está ejecutando.
Z (Zero flag): Indica si el resultado de la última operación fue cero.
Opcodes:
1: Carga el valor de la dirección en el AC.
2: Guarda el valor del AC en una direccion de memoria.
3: Suma el valor de la dirección de memoria especificada al AC.
4: Si Z=1 (si y solo si), salta a la dirección de memoria especificada. // Nunca se ejecuta
5: Suma el valor de la dirección de memoria especificada al AC.
6: Salta a la dirección de memoria especificada (siempre).
Indices:
| Indice | Valor | Tipo | |
| ------ | ----- | --------- | -------------------------- |
| 300 | 1940 | Almacenar | Guarda 0003 (I 940) en AC |
| 301 | 3940 | Resta | Resta 0001 a AC; AC = 0002 |
| 302 | 6943 | Jump | Salta a 943 |
| ---- | ---- | | |
| 940 | 0003 | Variable | |
| 941 | 0001 | Variable | |
| 942 | 1200 | Almacenar | |
| 943 | 5902 | Suma | Suma el valor de 902 a AC |
### Pasos
##### Inicio:
PC = 300
IR = 1940
AC = 0000
Z = 0
Se ejecuta el PC (300)
##### Primer paso:
PC: 301
IR: 1940
AC = 0003 (Valor del indice 940)
La operacion es 1940, por lo que (1) Cargo el valor de un indice (940) en AC
940 Tiene 0003
##### Segundo paso:
PC: 302
IR: 3941
AC = 0002 (Se le resta 0001, el valor de 931)
##### Tercer paso:
PC: 943
IR: 6943
AC = 0002
Este es un salto directo a 943.
##### Cuarto paso:
PC: 944
IR: 5902