2009-12-09 9 views

Antwort

14

MOV r0, r0 wird traditionell in ARM-Code verwendet, der den Opcode 0xe1a00000 hat; MOV R 8, R 8 in THUMB-Code (opcode 0x46c0)

+0

Enthält diese keine Nebenwirkungen auf die Architektur haben? –

+0

@Stefan, ich denke nicht. Das sind die Maschinenanweisungen, die mein Assembler generiert, wenn ich eine 'nop' Anweisung in die Quelldatei lege. –

+0

Anscheinend hat Thumb2 eine NOP-Anweisung. Siehe Seite 5 von http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf – MArag

10

ARMv7 eine vorhandene NOP Anweisung, mit den folgenden Kodierungen verwendet:

0xbf00 2 byte thumb2 form 
0xf3af8000 4 byte thumb2 form 
0x*320f000 4 byte arm form 

Bei früheren Versionen der Architektur Targeting, Assemblierer NOP in das MOV übersetzen Anweisungen, dass Moonshadow aufgeführt.

Sie sollten die tatsächlichen Opcodes nicht verwenden müssen, da die Entwicklungstools NOP verstehen.

5

Ich möchte hinzufügen, dass nicht-bedingten NOP für Armv7 ist 0xE320F000.

Beachten Sie, wenn Sie eine Datei patchen wollen Sie schreiben Bytes in umgekehrter Reihenfolge (Little Endian) müssen - 00 F0 20 E3