Schnelle Frage für Sie, in meiner Schleife muss ich CMP, BLT und BGT verwenden, um einige Werte zu vergleichen. Wie würden diese Anweisungen in der folgenden Schleife verwendet werden?ARM Assembler - Wie verwende ich CMP, BLT und BGT?
Ich versuche, BGT, BLT und CMP zu verwenden, wie ich sie brauche, um meine Anwendung arbeiten zu lassen. Das Problem ist, ich habe keine Ahnung, wie man sie benutzt. 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 möchte, 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
Ihre Fragen sind unklar. Bitte klären Sie. –
Ich habe eine weitere Beschreibung zu meiner Frage hinzugefügt. – user1080390