ritita (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/02/2010
|
ragazzi..mi sto esercitando in arkitettura dei programmatori xkè tra una settimana ho l'esame e..ho un dubbio..potete dirmi se questo esercizio è fatto bene,male o manca qualcosa??grazie anticipatamente..
TRACCIA: IF indice=8
then (locazione di memoria 8100)=100
else (locazione di memoria 8100)=120
Codice sorgente - presumibilmente VB.NET |
ORG $8000 START LEA $8100,A0 CMP.B #8,INDICE BEQ ELSE MOVE.B #120,DATA STOP #$2700 ELSE MOVE.B #100,DATA STOP #$2700 ORG $8200 DATA DC.B 0 INDICE DC.B 8 END START
|
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
non credo proprio l'else esista in x86...
|
|
ritita (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/02/2010
|
lavoro col motorola 68000..puoi comunque aiutarmi?
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da ritita:
lavoro col motorola 68000..puoi comunque aiutarmi? |
noi lo abbiamo fatto per info 2, ho sempre avuto repulsione a studiare qualcosa che nella pratica non è mai esistita NE' è stata di alcuna utilità a causa di un bug nella gestione della memoria virtuale:
http://it.wikipedia.org/wiki/Motorola_68000
cmq li trovi tutto, anche il set di istruzioni
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Postato originariamente da HeDo:
non credo proprio l'else esista in x86... |
quella è solo una Label, non è un opcode...
noi lo abbiamo fatto per info 2, ho sempre avuto repulsione a studiare qualcosa che nella pratica non è mai esistita NE' è stata di alcuna utilità a causa di un bug nella gestione della memoria virtuale:
|
non ti seguo, ci hanno fatto 10 anni di computer sia Amiga che Apple con questi processori... ma forse non ho capito cosa intendi dire...
comunque, ritita, a me il codice sembra corretto |
|
ritita (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/02/2010
|
grazie x il link e grazie a TheKaneB x la risposta..avevo solo bisogno di una conferma..
|
|
ritita (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/02/2010
|
TheKaneB volevo chiederti un'altra cosa..come faccio a sapere,sempre con comandi x il motorola 68000, se un numero in una locazione di memoria è pari o dispari??t prego aiuto!!
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
ti dico la tecnica, al codice ci puoi arrivare in modo autonomo riflettendoci su 2 minuti :-)
In base 10 (quella consueta) i numeri multipli di 10 hanno lo 0 alla fine... come 30, 40, 50... non ti serve fare la divisione per 10, ti basta guardare l'ultima cifra...
In base 2 (quella usata dalle CPU) i numeri multipli di 2 hanno lo 0 come ultimo bit (quello meno significativo o LSB). Quindi ti basta controllare lo stato di questo bit, 0 vuol dire che è multiplo di 2 (pari), 1 vuol dire non multiplo (dispari)... il codice è dato da 2 opcode esatti :-)
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da TheKaneB:
non ti seguo, ci hanno fatto 10 anni di computer sia Amiga che Apple con questi processori... ma forse non ho capito cosa intendi dire...
comunque, ritita, a me il codice sembra corretto |
io non sto parlando dell'architettura motorola 68XXX, sto parlando del PROCESSORE 68000 che è stato soppiantato pochi mesi dopo la messa in commercio dal 68010 perchè conteneva un bug che impediva di gestire la memoria virtuale correttamente.
Visto che si sono trovati con un processore inusabile hanno deciso di rendere pubblico il microcodice delle istruzioni e donarlo alle università che quindi da tempo immemore propongono lo studio di questo processore SOLO perchè hanno il sorgente del microcodice.
|
|