primo modulo tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 ·...
TRANSCRIPT
![Page 1: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/1.jpg)
Architettura di un calcolatore e linguaggio macchina
Primo modulo
Tecniche della programmazione
![Page 2: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/2.jpg)
CPU
Central Processing Unit, processoreUnita’ logica/aritmetica: elaborazione datiUnita’ di controllo: coordina le attivita’Registri: memoria temporanea, simili a celle di
memoria principale Generici: per gli operandi di un’operazione
logica/aritmetica, e il risultato Speciali: per operazioni particolari
![Page 3: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/3.jpg)
CPU e memoria principale
Trasferimento dati in entrambe le direzioni (lettura e scrittura): bus
![Page 4: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/4.jpg)
Somma di due dati in memoria
Prendere primo operando da RAM e metterlo in un registro
Prendere l’altro operando da RAM e metterlo in un registro
Attivare i circuiti per la somma usando i due registri come ingressi e un altro registro come uscita
Trasferire il risultato in RAM Stop
![Page 5: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/5.jpg)
Sia dati che programmi in RAM
Non solo operandi o risultati sono memorizzati nella RAM
Anche le istruzioni dei programmi La CPU esegue cose diverse (somma,
sottrazione, divisione, operazioni logiche, ...) a seconda dell’istruzione che legge in RAM
Ogni istruzione: sequenza di bit contenuta in una cella di RAM
![Page 6: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/6.jpg)
Linguaggio macchina
Insieme di istruzioni molto semplici Approccio RISC (Reduced Instruction Set
Computer): poche istruzioni semplici Approccio CISC (Complex ...): molte
istruzioni complesse Pentium sono CISC, POwerPC (Apple,
IBM, Motorola) sono RISC
![Page 7: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/7.jpg)
Istruzioni per trasferimento dati
In realta’, non e’ un trasferimento ma una copia
Load: da memoria a registro Store: da registro a memoria Anche input/output
![Page 8: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/8.jpg)
Istruzioni logico/aritmetiche
Operazioni aritmetiche: somma, ... Operazioni logiche: and, or, xor, anche
shift e rotate
![Page 9: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/9.jpg)
Istruzioni di controllo
Regolano l’esecuzione del programma Es.: stop Anche istruzioni di salto: se l’istruzione da
eseguire non e’ la successiva nella lista Salto condizionato o no Es.: salta al passo 5, o salta al pass 5 se il
valore ottenuto e’ 0
![Page 10: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/10.jpg)
Divisione di due valori in memoria
1. Carica in un registro un valore in memoria (LOAD)2. Carica in un altro registro un altro valore in memoria
(LOAD)3. Se questo secondo valore e’ 0, salta al passo 6 (salto
condizionato)4. Dividi il contenuto del primo registro per quello del
secondo registro e metti il risultato in un terzo registro (op. aritmetica)
5. Archivia il contenuto del terzo registro in memoria (STORE)
6. STOP
![Page 11: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/11.jpg)
Esempio di architettura
• 16 registri, 256 celle di memoria• Program counter: indirizzo della prossima istruzione da eseguire• Instruction register: istruzione da eseguire
![Page 12: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/12.jpg)
Istruzione macchina
Due parti (campi): Campo codice operativo: quale
operazione eseguire Campo operando: diverso a seconda
dell’operazione
![Page 13: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/13.jpg)
Istruzioni di trasferimento: registri ⇔ RAM
012345ALU
R0
R1
R2
LOAD
STORE
![Page 14: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/14.jpg)
Formato:in binario!
codice-op n. registro indirizzo parola RAM
8 bit 4 bit 20 bit
1 parola
LOAD 00000000STORE 00000001Codici:
![Page 15: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/15.jpg)
ARITMETICHEeseguono somma, differenza, moltiplicazione e divisione usando i registri come operandi
ADD 00000010 FADD 00000011
SUB 00000100 FSUB 00000101
MULT 00000110 FMULT 00000111
DIV 00001000 FDIV 00001001
MOD 00001010
Ri
RjCOp
![Page 16: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/16.jpg)
FORMATO:
codice-op reg 1 reg 2
8 bit 4 bit 4 bit inutile
1 parola
![Page 17: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/17.jpg)
Istruzioni di input/output: unità I/O ⇔ RAM
012345
READ
WRITE
![Page 18: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/18.jpg)
Formato:in binario!
codice-op n. unità indirizzo parola RAM
8 bit 4 bit 20 bit
1 parola
READ 00010000WRITE 00010001
Codici: Unità:STINP 0000 (tastiera)STOUT 0001 (video)
![Page 19: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/19.jpg)
Confronto paragona il contenuto di 2 registri Ri ed Rj e:•se Ri < Rj mette -1 nel registro RC
•se Ri = Rj mette 0 in RC•se Ri > Rj mette 1 in RC
Ri
RjCCf
RC
COMP 00100000FCOMP 00100001
Codici:
![Page 20: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/20.jpg)
FORMATO:
codice-op reg 1 reg 2
8 bit 4 bit 4 bit inutile
1 parola
![Page 21: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/21.jpg)
Saltoistruzioni che permettono di saltare ad un’altra istruzione del programma a seconda del contenuto di RC (cioè a seconda del risultato di un confronto)
BRLT 01000001 BRNE 01000100
BRLE 01000010 BRGE 01000110
BREQ 01000011 BRGT 01000101
BRANCH 10000000
Anche salto incondizionato!
![Page 22: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/22.jpg)
FORMATO:
codice-op indirizzo RAM
8 bits inutile 20 bit
1 parola
![Page 23: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/23.jpg)
STOP
termina il programma
STOP 10000001Codice:
![Page 24: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/24.jpg)
FORMATO:
codice-op
8 bits inutile
1 parola
![Page 25: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/25.jpg)
Ciclo della CPU
La CPU esegue un programma memorizzato in RAM copiando ad una ad una le istruzioni nell’unita’ di controllo
Ordine: quello in cui sono memorizzato, a meno di istruzioni di salto
Registri speciali: contatore di programma (program counter) Istruzione (instruction register)
![Page 26: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/26.jpg)
Ciclo della CPU
Reperimento dell’istruzione (fetch): lettura della cella di RAM il cui indirizzo e’ contenuto
nel contatore di programma caricamento del registro istruzione con l’istruzione Incremento del contatore programma
Decodifica dell’istruzione: Trova gli operandi a seconda del codice operativo Modifica contatore programma se istruzione di salto
Esecuzione dell’istruzione: Attiva i circuiti necessari
![Page 27: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/27.jpg)
Ciclo della CPU
![Page 28: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/28.jpg)
Esempio
Scriviamo un programma macchina che:
•trasferisce il contenuto di 2 parole di indirizzo 64 e 68 della RAM nei registri R0 ed R1
•li somma
•trasferisce la somma nella parola di indirizzo 60 della RAM
![Page 29: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/29.jpg)
Codici delle operazioni
•trasferimento RAM → CPU: 00000000
•trasferimento CPU → RAM: 00000001
•somma : 00000010
![Page 30: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/30.jpg)
388
606468
Porta 68 in R1Somma R0 e R1
Porta 64 in R01024102810321036 Porta R0 in 60
..0100110..01000
11110010000001000100
000000000001..0100010000001000000001....
000000000000..01000010000000000100000001001000000100010000001100000000010000..001111
![Page 31: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/31.jpg)
Svantaggi del linguaggio macchina:
•programmi in binario sono difficili da scrivere, capire e cambiare
•il programmatore deve occuparsi di gestire la RAM: difficile ed inefficiente
primo passo → Assembler
![Page 32: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/32.jpg)
Novità dell’Assembler
•codici mnemonici per le operazioni
•nomi mnemonici (identificatori) al posto degli indirizzi RAM per i dati (e indirizzi RAM delle istruzioni usate nei salti)
•tipi dei dati INT e FLOAT
![Page 33: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/33.jpg)
Codice-op mnemonici:•trasferimento: LOAD (RAM → CPU) e STORE (CPU → RAM)•aritmetiche: ADD,SUB,DIV,MULT,MOD,FADD,FSUB,FDIV,FMULT•input/output: READ (U-INP → CPU), WRITE (CPU → U-OUT)•test: COMP, FCOMP •salto: BREQ,BRGT,BRLT,BRGE,BRLE, BRANCH •terminazione: STOP
![Page 34: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/34.jpg)
Stesso esempio del linguaggio macchina
Z : INT ; X : INT 38;Y : INT 8;LOAD R0 X;LOAD R1 Y;ADD R0 R1;STORE R0 Z;
dichiarazioni degli identificatori dei dati
istruzioni assembler
![Page 35: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/35.jpg)
Esempio
carica due valori dalla RAM, li somma e mette il risultato al posto del maggiore dei 2 numeri sommati (nel caso siano uguali, non importa in quale dei due si mette la somma)
![Page 36: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/36.jpg)
X: INT 38;Y: INT 8; LOAD R0 X; LOAD R1 Y; LOAD R2 X; ADD R2 R1; COMP R0 R1; BRGE pippo; STORE R2 Y; STOP;pippo: STORE R2 X; STOP;
![Page 37: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/37.jpg)
Flowchart
LOAD R0 X;LOAD R1 Y;LOAD R2 X;ADD R2 R1;
R0 � R1?
STORE R2 X; STOP;
STORE R2 Y; STOP;
SI NO
test
![Page 38: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/38.jpg)
Esempio
calcolare il resto della divisione di due numeri usando solo la sottrazione
![Page 39: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/39.jpg)
X: int 356; Y: int 23; RESTO: int ; LOAD R0 X; LOAD R1 Y; ciclo: COMP R0 R1; BRLT fine; SUB R0 R1; BRANCH ciclo; fine: STORE R0 RESTO; STOP;
![Page 40: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/40.jpg)
LOAD R0 X; LOAD R1 Y;
R0<R1?
SUB R0 R1;
NO
STORE R0 RESTO; STOP;
ciclo o iterazione
SI
![Page 41: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/41.jpg)
Esempio potenza
Leggere un reale x ed un intero positivo n e calcolare la potenza xn
Esempio
![Page 42: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/42.jpg)
X: FLOAT ;N: INT ;Ris: FLOAT ;Uno : INT 1;Unofl: FLOAT 1.0;READ STINP X;READ STINP N;LOAD R0 Uno; SUB R0 R0;LOAD R1 Uno;LOAD R2 X;LOAD R3 N;LOAD R4 Unofl;
R0 = 0 interoR1 = 1 intero
R4 = 1 reale
R2 = X realeR3 = N intero
![Page 43: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/43.jpg)
Ciclo: COMP R3 R0; BREQ Esci; FMULT R4 R2; SUB R3 R1; BRANCH Ciclo;Esci: STORE R4 Ris; WRITE STOUT Ris; STOP;
R0 = 0 interoR1 = 1 intero
R4 = 1 realeR2 = X reale
R3 = N intero
R4 = XN-R3
R4 = XN
![Page 44: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/44.jpg)
FMULT R4 R2;SUB R3 R1;
NO
ciclo o iterazione
SIR3 = R0?
![Page 45: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/45.jpg)
Domande:
•quali sono le novità principali dell’Assembler rispetto al linguaggio macchina?
•in un programma assembler, perchè si attaccano etichette a certe istruzioni?
![Page 46: Primo modulo Tecniche della programmazionemarte/homepage/didattica/complementi... · 2013-10-30 · shift e rotate. ... 8 bit 4 bit 20 bit 1 parola READ 00010000 WRITE 00010001 Codici:](https://reader034.vdocuments.pub/reader034/viewer/2022050409/5f8687d74c9e3024e22d31e8/html5/thumbnails/46.jpg)
•come si chiama in Assembler l’istruzione che trasferisce una parola dalla RAM ad un registro della CPU? E quella che compie il trasferimento inverso?
•In assembler a cosa servono gli identificatori o variabili?