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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage