ARM Assembler - Wie verwende ich CMP, BLT und BGT?
Kurze Frage an euch, in meiner Schleife muss ich CMP, BLT und BGT verwenden, um einige Werte zu vergleichen. Wie würden besagte Anweisungen in der folgenden Schleife verwendet?
Ich versuche, BGT, BLT und CMP so zu verwenden, wie ich sie benötige, damit meine Anwendung funktioniert. Das Problem ist, dass ich keine Ahnung habe, wie ich sie verwenden soll. Wenn ich CMP verwenden wollte, um r6 mit r4 zu vergleichen und die Differenz in r7 zu setzen, wie würde ich das tun? Die gleiche Frage, wenn ich BLT verwenden wollte, wenn r7 kleiner als 0 ist, wie würde ich das tun?
BGT ??????? ; branch if greater than 5
CMP ???????? ; compare r6 with r4 , put difference into r7
BLT ???????? ;branch if r7 is less than 0
BGT ???????? ;branch if r7 is greater than 0
Hier ist meine gesamte Schleife:
LoopStart
BL WaitBUT1
BL readTemp
BL checkTemp
BGT ??????? ; branch if greater than 5
BL errorVal
CMP ???????? ; compare r6 with r4 , put difference into r7
BLT ???????? ;branch if r7 is less than 0
BL FanOn
BL errorLedOn
BL systemLedOn
BL heaterOn
BGT ???????? ;branch if r7 is greater than 0
BL FanOff
BL errorLedOff
BL systemLedOff
BL heaterOff
BL WaitBUT2
BL FanOff
BL errorLedOff
BL systemLedOff
BL heaterOff
B LoopStart