Azione delle istruzioni
Programma assembler simbolico / binario Definire il dato A Definire il dato B Definire spazio del risultato come dato C Inizio Carica il dato A Carica il dato B Somma A e B Salva il risultato in C fine Supponiamo di voler effettuare la somma di due numeri A e B e salvare il risultato in una cella di memoria successiva Con la metodica della notazione inversa polacca Dato A , Dato B, Somma Informatica - Ingegneria Medica -2013 - Franco Del Bolgia
Es Programma elementare Indirizzo di Memoria esadecimale dal program counter Codice nella memoria Operazione da eseguire 0000 1A Carica il data su A 0001 14 Dato A 0002 1B Carica il data su B 0003 A2 Dato B 0004 2F Somma A con B 0005 A1 Move risultato a 000F 0006 0F LSB address 0007 00 MSB address 0008 F0 stop …….. …. 000E 000F B6 Al termine del programma Supponiamo di voler effettuare la somma di due numeri 14H e A2H e salvare il tutto in una cella di memoria successiva 1A 14 1B A2 2F A1 00 0F F0 Codice operativo Notazione inversa polacca Con la RPN è possibile effettuare qualsiasi tipo di operazione, con il vantaggio di eliminare i problemi dovuti alle parentesi e alla precedenza degli operatori (prima la divisione, poi l'addizione ecc.). 5 + (10 * 2) in RPN 5 10 2 * + L’algoritmo è molto semplice si inseriscono gli operandi e subito dopo gli operatori in sequenza l’operatore lavora solo sugli ultimi due operandi prima dell’operatore a ritroso lasciando il risultato nella stack (7 / 3) / ((1 - 4) * 2) + 1 in RPN 1 7 3 / 1 4 - 2 * / + Primo operatore / operandi precedento 7 e 3 [1 2,33 1 4 – 2 * / +] [1 2,33 (-3) 2 * / +] [1 2,33 (-6) / +] [1 (-0,388) +] = 0.611 oppure 7 3 / 1 4 - 2 * / 1 + Notazione inversa polacca Informatica - Ingegneria Medica -2013 - Franco Del Bolgia
Esecuzione nella CPU OpCode Stop OpCode Somma OpCode Load B OpCode Load A OpCode Store Addr 0F Addr 00 Dato 1 Dato 2 BUS di Indirizzamento BUS di Dati Internal BUS Registri ausiliari Decodificatore Istruzioni ALU Registro A Registro B Somma Address 0006 Address DATA 000F Address 0007 Address 0008 Address 0000 Address 0005 Address 0001 Address 0003 Address 0002 Address 0004 Contatore di programma Ciclo +1 legato al clock Somma Temporizzazione e controllo Flag Informatica - Ingegneria Medica -2013 - Franco Del Bolgia