Ich bin neu in der Montage, und es ist ziemlich lustig. Sowieso Ich habe eine Frage ...eine einfache Montage Frage
cmpw cr7, %r29, %r8
Ist dieser Code entspricht if cr7 > %r29 and %r8
?
Ich bin neu in der Montage, und es ist ziemlich lustig. Sowieso Ich habe eine Frage ...eine einfache Montage Frage
cmpw cr7, %r29, %r8
Ist dieser Code entspricht if cr7 > %r29 and %r8
?
Es vergleicht r29 mit r8 und platziert das Ergebnis in cr7 ich glaube.
Mit anderen Worten:
cr7 = r29 - r8
Nachdem einige PPC docs lesen, es sieht aus wie cr (das Vergleichsregister), bekommt einen codierten Wert, was weniger, größer, gleich.
less: 0x100
greater: 0x010
equal: 0x001
In anderen Architekturen wie x86, gibt es keine CR per se, sondern eine Gruppe von Fahnen, wie ZF, SF und CF (Null, Zeichen und tragen Fahnen). Diese werden immer während arithmetischer Operationen wie Subtraktion gesetzt. Daher ist ein Vergleich im Prinzip der gleiche wie ein Subtrahieren.
Danke, das macht Sinn. Aber warum die Subtraktion? – Mark
Vergleich ist wirklich nur eine Subtraktion. Wenn Sie A und B vergleichen, ist A kleiner als B, wenn A-B negativ ist. Es ist mehr als B, wenn A-B positiv ist, und sie sind gleich, wenn A-B == 0 ist. Ich bin jedoch nicht 100% sicher, dass PPC das subtrahierte Ergebnis speichert. Ich habe eine Dokumentation gefunden, die besagt, dass das cr Werte von 4, 2 und 1 für weniger, größer, gleich erhält. –
Ah, okay. Hier ist der vollständige Code: cmpw cr7,% r29,% r8 beq cr7, loc_152A13 – Mark
Es wird wahrscheinlich anderen helfen, Ihre Architektur zu geben. – ktm5124
Sieht aus wie PowerPC –
ja, das ist PPC – Mark