Linguaggio assembler
salve ragazzi sto svolgendo dei quesiti di informatica in cui ho già le risposte.... uno di questi quesiti mi chiede
La sequenza di istruzioni in linguaggio macchina:
load R02, 4000
load R03, 4004
add R01, R02, R03
load R02, 4008
add R01, R01, R02
store R01, 4000
a quale tra le seguenti istruzioni potrebbe corrispondere?
è la risposta è: b = b + c + a
Vi chiedo se qualcuno ha capito come fare questo esercizio perchè io non lo capisco..cioè le variabili a,b e c quali sarebbero?il comando store a cosa serve???in qualunque modo lo svolgo non mi risulta!!grazie a presto!!
La sequenza di istruzioni in linguaggio macchina:
load R02, 4000
load R03, 4004
add R01, R02, R03
load R02, 4008
add R01, R01, R02
store R01, 4000
a quale tra le seguenti istruzioni potrebbe corrispondere?
è la risposta è: b = b + c + a
Vi chiedo se qualcuno ha capito come fare questo esercizio perchè io non lo capisco..cioè le variabili a,b e c quali sarebbero?il comando store a cosa serve???in qualunque modo lo svolgo non mi risulta!!grazie a presto!!
Risposte
hem...Io conosco solo il linguaggio assembler GAS che evidentemente non è quello che stai maneggiando te. Affinché si possa megli capire scriveresti che tipo di linguaggio assembler stai trattando?[a quali processori è associato ecc]
"daniela87":
Vi chiedo se qualcuno ha capito come fare questo esercizio perchè io non lo capisco..cioè le variabili a,b e c quali sarebbero?il comando store a cosa serve???in qualunque modo lo svolgo non mi risulta!!grazie a presto!!
La "Store" sposta il contenuto di una variabile al registro. Il contrario della "Load".
Le prime 2 istruzioni assegnano le variabili R02 ed R03.
La terza fa la somma, e sposta il contenuto in R01
Poi viene riposizionata R02 da un terzo registro
e sommato il tutto in R01
per poi trasferire il contenuto al primo registro (quello che il libro ha chiamato genericamente "b")
Sono abituato ad una sintassi un po' diversa. In ogni caso a, b e c non sono registri, ma variabili corrispondenti alle locazioni di memoria 4004, 4000 e 4008.
Scritto in una sintassi più simile al C, verrebbe:
load R02, 4000 ; carica b (il valore intero contenuto alla locazione 4000) nel registro R02 load R03, 4004 ; carica a (il valore intero contenuto alla locazione 4004) nel registro R03 add R01, R02, R03 ; somma i valori contenuti nei registri R02 e R03 e salva il risultato nel registro R01 load R02, 4008 ; carica c (il valore intero contenuto alla locazione 4008) nel registro R02 add R01, R01, R02 ; somma i valori contenuti nei registri R01 e R02 e salva il risultato nel registro R01 store R01, 4000 ; memorizza il valore contenuto nel registro di memoria R01 alla locazione 4000 (b)
Scritto in una sintassi più simile al C, verrebbe:
R02 = b; R03 = a; R01 = R02 + R03; R02 = c; R01 = R01 + R02; b = R01;
Grazie 10000,siete stati chiarissimi e gentilissimiii!