[M68K-ASM] Compare-Befehl

Peter

Lt. Commander
Registriert
Mai 2001
Beiträge
1.957
Back to the roots :lol:

Folgendes M68K-Assembler-Codefragment:
(Unterstriche sind nur für Optik)

MOVEQ.B__#1__D1__// D1 Mit 1 laden
CMP.B____#1__D1__// D1 mit 1 vergleichen

Nun will ich, wenn D1==1 ist, zu einer Marke X springen.
Muss ich dann das Compare-Ergebnis mit dem Zero-Flag vergleichen, also BEQ X ?

Ich steh grad voll im Wald :rolleyes:

/*****************
Nachtrag
Kennt jmd von euch eine Seite wo der komplette M68K-Befehlsatz aufgelistet ist, und wenn möglich nicht in pdf-Form, denn da kann man die Tabellen nur schlecht rauskopieren.
*****************/
 
Zuletzt bearbeitet:
:lol: :lol: :lol:
Servus Peter,

wenn bei einem Vergleich mit CMP Identität der zu vergleichenden Werte festegestellt wird, dann wird das z-Bit auf 1 gesetzt.
In deinem Fall mußt du also mit BEQ (branch if equal) weitermachen:
Code:
MOVEQ.B  #1, D1  // D1 Mit 1 laden
CMP.B    #1, D1  // D1 mit 1 vergleichen
BEQ      deineMarke
Das hättest du aber alles selber aus dem Malz-Skript rauslesen können :rolleyes:.
 
Jau, ich habs dann auch im Skript vom Malz gefunden,
ausserdem hab ich dann noch einen kleinen Fehler in unseren bisherigen Lösungen gefunden :)
 
wenn man cmp reg,wert machen will, sollte man auch gleich cmpi statt cmp nutzen... das spart das kopieren und damit belegen eines wichtigen registers ein...

Eugene
 
Zurück
Oben