Eckert registri di stato ALU
Z: indica se l'ultima operazione effettuata dalla ALU ha restituito 0
N: contiene il bit di segno dell'ultima operazione effettuata dalla ALU
V: indica se l'operazione effettuata dalla ALU ha dato overflow
C: contiene il bit di riporto dell'ultima somma effettuata dalla ALU
Schema generale
Comandi
-
Lx (Load, x = P, M, D, A, B, I)
Il registro riceve un dato dal bus
-
Ex (Export, x = P, D, A, U, I)
Il registro copia il suo contenuto sul bus
-
IP (Increment PC)
Incrementa il program counter per permettere di effettuare l'operazione successiva
- A / S (Add / subtract)
- R / W (Read / Write)
Codici operativi
| Mnemonico | Codice Operativo | Azione | Mnemonico Micro-istruzioni |
|---|---|---|---|
| LDA | 1 | A (Mem) |
1. MAR IR EI,LM 2. MDR M(MAR) R 3. A MDR ED,LA |
| STA | 2 | (Mem) A |
1. MAR IR EI,LM 2. MDR A EA,L 3. M(MAR) MDR W |
| ADD | 3 | A A+B | 1. A ALU(Add) A,EU,LA |
| SUB | 4 | A A-B | 1. A ALU(Sub) S,EU,LA |
| MBA | 5 | B A | 1. B A EA,LB |
| JMP | 6 | PC Mem | 1. PC IR EI,LP |
| JN | 7 | PC Mem | 1. PC IR if NF is set NF : EI,LP |
| HLT | ago-15 | Stop Clock | “Fetch” 1. MAR PC EP,LMIR Next 2. MDR M(MAR) RInstruction 3. IR MDR ED,LI,IP |
Esercizi
Considerazioni generali
- Se non specificato, gli indirizzi partono dallo “00”
- Se non specificato, le variabili del programma vanno messe in fondo (le variabili vanno messe in “FF” poi in “FE” etc...)
ES: (1) Somma fra numeri
| Indirizzi | Assembly | Esadecimale | Descrizione |
|---|---|---|---|
| 00 | LDA FF | 1FF | Metto il contenuto di FF in A |
| 01 | MBA | 500 | Metto il contenuto di A in B |
| 02 | LDA FE | 1FE | Metto il contenuto di FE in A |
| 03 | ADD | 300 | Sommo A + B |
| 04 | STA FD | 2FD | Metto il risultato di A+B in FD |
| 05 | MLT | 800 | Fine… |
| FD | X + Y | 013 | Risultato |
| FE | Y | 00 | |
| FF | X | 004 |
ES: (2) Valore assoluto – Esteso
| Indirizzi | Assembly | Esadecimale | Descrizione |
|---|---|---|---|
| 00 | LDA FF | 1FF | Carico FF in A |
| 01 | MBA | 500 | Metto A in B |
| 02 | LDA FD | 1FD | Carico FD in A |
| 03 | ADD | 300 | Sommo e metto il risultato in A |
| 04 | JN 07 | 707 | Se A è negativo, salta a 07 |
| 05 | STA FE | 2FE | Carico A (somma) in FE |
| 06 | HLT | 800 | Fine |
| 07 | LDA FD | 1F0 | Carico FD in A |
| 08 | SUB | 400 | Sottraggo A - B e metto in A |
| 09 | JMP 05 | 605 | Salto a 05… |
| FD | 0 | ||
| FE | |X| | ||
| FF | X |
ES: (2) Valore assoluto – Ottimizzato
| Indirizzi | Assembly | Esadecimale | Descrizione |
|---|---|---|---|
| 00 | LDA FF | 1FF | Carico FF in A |
| 01 | JN 04 | 707 | Se A è negativo, salta a 07 |
| 02 | STA FE | 2FE | Carico A (somma) in FE |
-
architettura degli elaboratori
-
Esercitazioni Architettura degli Elaboratori
-
Architettura degli elaboratori
-
Architettura degli elaboratori