Sono alle prese con l'Assembler Motorola 68000 e sto approcciando da poco con qualche esercizio.
Visto che è uno dei primi che sto svolgendo volevo chiedere uno sguardo per sapere se sono sulla giusta strada o devo rivedere qualcosa.
Il testo dell'esercizio mi chiede di creare un costrutto if-else. Precisamente se q=4, x=5 altrimenti x=y.
Io credo di esserlo riuscito a risolvere con qualche difficoltà ed ho qualche dubbio da chiarire. Intanto posto il codice che ho scritto:
ORG $8000
START MOVE.B Q,D0
CMP #4,D0
BEQ IF
BNE ELSE
IF MOVE.B #5,D1
MOVE.B D1,X
JMP FINE
ELSE MOVE.B Y,D2
MOVE.B D2,X
JMP FINE
FINE STOP #$2700
ORG $8814
Q DC.B 6
Y DC.B 7
X DS.B 1
END START
E' un giusto approccio?
Le mie domande particolari sono:
1)E' giusto usare BEQ e BNE per rimandare alle varie parti del codice che mi serve oppure si può fare in un altro modo? Perchè se a me serve solo l'else mi lancia comunque giustamente l'istruzione dell'if.
2)Se non mettessi STOP #$2700 mi da un errore in fase di esecuzione come mai? O meglio, a cosa mi serve stoppare il processore a quell'indirizzo (?) ?
3) Sarebbe giusta la soluzione un pò furbetta di mettere x pari a y a priori e di controllare solo se il CMP mi da Z=1? Ed evitare quindi di scrivere la parte dell'ELSE...
Scusatemi dove non sono stato molto chiaro. Spero di poter essere aiutato, qualunque cosa è ben accetta.
Saluti!