- ARM-Assembler - Wie benutze ich den CMP, BLT und BGT?
Kurze Frage für Euch, in meiner Schleife muss ich verwenden, CMP , BLT und BGT vergleichen Werte. Wie würden die genannten Anweisungen in der folgenden Schleife?
Ich versuche, BGT , BLT und CMP, wie ich brauche Sie, um meine Anwendung zu arbeiten. Das Problem ist ich habe keine Ahnung, wie Sie zu verwenden sind. Wenn wollte ich mit CMP vergleichen, r6, wobei r4 und setzen Sie den Unterschied in r7, wie kann ich dies tun? Die gleiche Frage, wenn ich die nutzen wollte, BLT, wenn r7 ist weniger als 0, wie kann ich dies 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, ist unklar. Bitte klären Sie.
- Ich habe eine genauere Beschreibung zu meiner Frage.
InformationsquelleAutor user1080390 | 2012-05-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht tun, eine bedingte Verzweigung, ohne Sie zunächst die Bedingung, registrieren Sie irgendwie. Diese kann getan werden, mit
cmp
oder durch hinzufügens
meisten Anweisungen. Überprüfen Sie heraus die ARM-Montage-Dokumentation für details. Kurzes Beispiel:Zweig, wenn
r0
größer als 5:Vergleichen
r6
mitr4
, setzen Unterschied inr7
, Zweig, wennr7 < 0
:BMI (minus/negativ), Wenn N ist aktiviert (N-1) wobei N eine Flagge, die aktiviert wird wenn das Ergebnis des Befehls ergibt eine negative Zahl. Behinderte sonst.
Warum subS statt sub? Da S ist ein optionaler suffix, das, wenn angegeben ist, wird die condition-flags (wie-N) aktualisiert auf das Ergebnis der operation.
Grüße.
Sollten Sie die Kasse die ARM-Dokumentation (Beispiel für CMP-Dokumentation):
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHIDDID.html
Was Lesen Sie dort, was Sie zu tun versuchen, vielleicht braucht es zwei Anweisungen, statt nur einer (es sei denn, Ihr ARM-assembler hat einige spezielle Verarbeitung)
Freundlichen GRÜßEN,
Bo