Ich kann mir nicht vorstellen, was bx lr macht und wie es sich von bl (label) unterscheidet. Ich weiß, dass bl (label) die Rückgabeadresse dieser Funktion im Linkregister speichert, aber ich weiß nicht, was bx lr tut.Was macht bx lr in der ARM-Assemblersprache?
8
A
Antwort
16
bx
steht für branch and exchange instruction set Das bedeutet, dass der Prozessor nach dem lsb (niederwertigstes Bit) der zu verzweigenden Adresse den nächsten Befehl als ARM oder als Daumen behandelt.
Als lr
Regel der Rücksprungadresse enthält, bedeutet dies, dass dies eine Rückkehr von einer Funktion ist, und wenn das lsb von lr
1 ist, wird es den Code an dieser Adresse als Daumen zu behandeln, sonst, es wird es so behandeln, als ARM.
Verwandte Themen
- 1. Was ist der Unterschied zwischen LR-, SLR- und LALR-Parsern?
- 2. Was macht der ^?
- 3. Was macht der DBContext.Entry?
- 4. Was macht der * * CSS-Selektor?
- 5. Was macht der Komma-Operator?
- 6. Was macht der folgende Code?
- 7. Was macht der folgende Code?
- 8. Was macht der folgende Code?
- 9. Was macht der 'Export'-Befehl?
- 10. Was macht der "private" Modifier?
- 11. Was macht der Angular2 "BrowserDomAdapter"?
- 12. Was genau macht der Operator ==?
- 13. MOV BX, [SI] - ASM Frage
- 14. Was macht === in PHP
- 15. Was macht der Operator | = in C#?
- 16. Was macht der unäre Operator in numpy?
- 17. Was macht der @> Operator in Postgres?
- 18. Was macht der @ -Zeichen in jQuery?
- 19. Was macht der Doppelpunkt in dieser Strukturdefinition?
- 20. Was macht der letzte Modifikator in Dart?
- 21. Was macht der `%` Charakter in GNU Make?
- 22. Was macht der Operator | = in JavaScript?
- 23. Was genau macht _malloc in der Montage?
- 24. Was macht der zusätzliche "$()" in "$ ($())" Selektor?
- 25. Was macht ein Multiplexer in der CPU?
- 26. Was macht der Operator/= in C#?
- 27. Was genau macht der Operator: = in Elm?
- 28. Was macht -gt in der Shell (bash)?
- 29. Was macht der Doppelpunkt in PATH
- 30. Was macht der @ -Zeichen in PHP?
Könnten Sie möglicherweise diese Erklärung vereinfachen, meine Kenntnisse der ARM-Architektur ist nicht so weit fortgeschritten. – user2177940
https://en.wikipedia.org/wiki/ARM_architecture#Thumb – MByD
@ user2177940 Teil 1: Modusschalter. Eine ARMv7-CPU arbeitet in einem von zwei Modi (genannt ARM oder Thumb), die sich in der Befehlskodierung unterscheiden (hauptsächlich in "vollständigen", aber großen 4-Byte-Befehlen gegenüber "eingeschränkten", aber kleinen 2-Byte-Befehlen). Welcher Modus zum nächsten umgeschaltet wird, wird ** zum Zeitpunkt des Anrufs mit 'bx/blx' ** dadurch bestimmt, ob die Adresse, zu der gesprungen werden soll, gerade oder ungerade ist (dies bewirkt einen Wechsel in den ARM- oder den Daumenmodus). –