PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [M68K-ASM] Compare-Befehl



Peter
06.07.2002, 19:18
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.
*****************/

Boron
07.07.2002, 21:08
: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:
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.

Peter
08.07.2002, 19:00
Jau, ich habs dann auch im Skript vom Malz gefunden,
ausserdem hab ich dann noch einen kleinen Fehler in unseren bisherigen Lösungen gefunden :)

Unregistered
22.07.2002, 23:57
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