La macchina di Von Neumann Istruzioni assembler Microprocessore Z80 mcp 1 CPU Unità Logico Aritmetica BUS Unità di Controllo MAR MDR Memoria Centrale BUS BUS Unità di ingresso/uscita Memoria di Massa mcp 2 CPU Unità logico Aritmetica o ALU Unità di controllo (Central Unit o CU • • • • Instruction Register (IR) Program Counter (PC) Stack Pointer (SP) Realizza il ciclo di fetch-execute • Circuito sommatore • Circuito operazioni logiche • Registro accumulatore mcp 3 • Data Bus BUS • Address Bus • Control Bus mcp Schema 4 Modello di Von Neumann Address Bus Unità di ingresso Unità di memoria CPU Unità di uscita Control Bus Data Bus mcp 5 Start MAR Istruzioni da eseguire LD A, 3 LD B, 5 ADD A,B LD (10), A End PC PC PC+1 Legge in memoria (all’indirizzo MAR) IR Fetch MDR Estrae la parte ‘Codice operativo’ del registro IR Fase 2 Analizza il codice operativo Esecuzione dell’istruzione mcp 6 Address Bus 00 00 LD A 3 01 02 LD B 03 5 04 ADD A,B 05 LD ...A 06 (10) 07 Halt 08 Data Bus PC Registri A B ALU C Blocco Logico IR mcp 7 Address Bus 00 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico IR mcp 8 Address Bus 00 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico IR mcp 9 Address 00 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico IR mcp 10 00 Bus Address PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico IR mcp 11 Address Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico IR mcp 12 Address Bus 01 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico IR mcp 13 Address Bus 01 00 00 LD A 3 01 02 LD B 03 5 04 ADD A,B 05 LD ...A 06 (10) 07 Halt 08 Data Bus PC Registri A B ALU C Blocco Logico IR mcp 14 Address Bus 01 00 01 02 03 04 05 06 07 08 LDAA LD 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico IR mcp 15 Address Bus 01 00 01 02 03 04 05 06 07 08 Data LD A 3 LD A Bus LD B 5 ADD A,B LD ...A (10) Halt PC Registri A B ALU C Blocco Logico IR mcp 16 Address Bus 01 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 LD A ADD A,B LD ...A (10) Halt PC Registri A B ALU C Blocco Logico IR mcp 17 Address Bus 01 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C LD A Blocco Logico IR mcp 18 Address Bus 01 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A IR mcp 19 Address Bus 01 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 20 Address Bus 01 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 21 Address Bus 01 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico LD A mcp IR 22 Address 01 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico LD A mcp IR 23 Address Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A B ALU C Blocco Logico LD A mcp IR 24 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 25 Address Bus 02 00 01 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 26 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 33 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 27 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 3 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A B ALU C Blocco Logico LD A mcp IR 28 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus 3 PC Registri A B ALU C Blocco Logico LD A mcp IR 29 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Fase 3 Data Bus PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 30 Address Bus 02 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 31 Address Bus 02 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A 3 B ALU C Blocco Logico LD A mcp IR 32 Address 02 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A 3 B ALU C Blocco Logico LD A mcp IR 33 Address Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A 3 B ALU C Blocco Logico LD A mcp IR 34 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 35 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 36 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LDBB LD 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 37 Address Bus 03 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 LD B ADD A,B LD ...A (10) Halt PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 38 Address Bus 03 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 ADD A,B LD ...A (10) LD B Halt PC Registri A 3 B ALU C Blocco Logico LD A mcp IR 39 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD B LD A mcp IR 40 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Fase 4 Data Bus PC Registri A 3 B ALU C Blocco Logico LD A B mcp IR 41 Address Bus 03 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A B mcp IR 42 Address Bus 03 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A 3 B ALU C Blocco Logico LD A B mcp IR 43 Address 03 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri A 3 B ALU C Blocco Logico LD A B mcp IR 44 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A B mcp IR 45 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 55 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A B mcp IR 46 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B ALU C Blocco Logico LD A B mcp IR 47 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 B 5 ALU C Blocco Logico LD A B mcp IR 48 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Fase 5 Data Bus PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 49 Address Bus 04 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 50 Address Bus 04 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 51 Address 04 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 52 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 53 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 54 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B A, B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 55 Address Bus 05 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 ADD A,B LD ...A (10)ADD A, B Halt PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 56 Address Bus 05 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 ADD A,B LD ...A (10) Halt ADD A, B PC Registri 3 A 5 B ALU C Blocco Logico LD A B mcp IR 57 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico ADD A, B LD A B mcp IR 58 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico ADD LD A, A B B IR mcp 59 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C ADD A, B Blocco Logico ADD A, B I R mcp 60 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C ADD A, B Blocco Logico ADD A, B I R mcp 61 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri A 3 3 ALU B 5 C ADD A, Blocco Logico ADD A, B I R mcp 62 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 3 B AD ALU C Blocco Logico ADD A, B I R mcp 63 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 5 B 3 ALU C Blocco Logico ADD A, B I R mcp 64 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B 5 ALU C Blocco Logico ADD A, B I R mcp 65 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B 5 ALU C Blocco Logico ADD A, B I R mcp 66 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B ALU C Blocco Logico ADD A, B I R mcp 67 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B 8 ALU C Blocco Logico ADD A, B I R mcp 68 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 3 A 5 B 8 ALU C Blocco Logico ADD A, B I R mcp 69 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 8 A 3 B 5 ALU C Blocco Logico ADD A, B I R mcp 70 Address Bus 05 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Fase 6 Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 71 Address Bus 05 PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 72 Address 05 Bus PC 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 73 Address Bus 06 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 74 Address Bus 06 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD LD …, ...AA (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 75 Address Bus 06 00 01 02 03 04 05 06 07 08 Data LD A Bus 3 LD B 5 ADD A,B LD ...A (10) HaltLD …, A PC Registri 83 A 5 B ALU C Blocco Logico ADD A, B I R mcp 76 Address Bus 06 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico LD …, A ADD A, B I R mcp 77 Address Bus 06 00 01 02 03 04 05 06 07 08 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Fase 7 Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 78 Address Bus 06 PC 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 79 Address 06 Bus PC 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 80 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 81 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 82 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 83 Address Bus 07 00 01 02 03 04 05 06 07 10 Data LD A Bus 3 LD B 5 ADD A,B LD ...A (10) Halt (10) PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 84 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico (10) ADD LD …, A,AB I R mcp 85 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C Blocco Logico ADD LD(10) …, A,AB I R mcp 86 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU C (10) Blocco Logico ADD LD …, A,AB I R mcp 87 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 A 5 B ALU (10) C Blocco Logico ADD LD …, A,AB I R mcp 88 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri 83 (10) A B 5 ALU C Blocco Logico ADD LD …, A,AB I R mcp 89 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus PC Registri (10) 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 90 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Data Bus (10) PC Registri 83 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 91 Address Bus 07 00 01 02 03 04 05 06 07 10 Data LD A Bus 3 LD B (10) 8 5 ADD A,B LD ...A (10) Halt PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 92 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) (10) Halt Data Bus PC Registri 8 A 5 B 8 ALU C Blocco Logico ADD LD …, A,AB I R mcp 93 Address Bus 07 00 01 02 03 04 05 06 07 10 (10) LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 94 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Fase 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 95 Address Bus 07 07 P C 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 96 Address 07 Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 97 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 98 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 99 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Halt Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LD …, A,AB I R mcp 100 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico Halt ADD LD …, A,AB I R mcp 101 Address Bus 07 00 01 02 03 04 05 06 07 10 LD A 3 LD B 5 ADD A,B LD ...A (10) Halt 8 Data Bus PC Registri 8 A 5 B ALU C Blocco Logico ADD LDHalt …, A,AB I R mcp 102 Il riconoscimento del tipo di istruzione da eseguire avviene in base al contenuto di alcuni bits dell’istruzione stessa costituenti il codice operativo, utilizzato anche per riconoscere la classe di appartenenza della stessa istruzione. CODICE OPERATIVO Altre informazioni Codice operativo di INCR < indirizzo > Esempi: Operazione Rd Rs+Rd Codice operativo di ADDR mcp Registro Sorgente Registro Destinazione 103