Oppure

Loading
08/06/10 15:21
ritita
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


      ORG     00
START LEA     00,A0
      CMP.B   #8,INDICE
      BEQ     ELSE
      MOVE.B  #120,DATA
      STOP    #00
ELSE  MOVE.B  #100,DATA
      STOP    #00

      ORG     00
DATA  DC.B    0
INDICE DC.B   8
      END     START
aaa
08/06/10 15:26
HeDo

non credo proprio l'else esista in x86...
aaa
08/06/10 15:32
ritita
lavoro col motorola 68000..puoi comunque aiutarmi?
aaa
08/06/10 16:29
HeDo
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:

it.wikipedia.org/wiki/…

cmq li trovi tutto, anche il set di istruzioni :)

aaa
08/06/10 16:52
TheKaneB
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
aaa
08/06/10 17:03
ritita
grazie x il link e grazie a TheKaneB x la risposta..avevo solo bisogno di una conferma..:k:
aaa
08/06/10 17:12
ritita
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!!:d
aaa
08/06/10 17:21
TheKaneB
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 :-)
aaa