L'opcode NOP per x86/x86_64 è 0x90, ma qual è l'analogo su iPhone con il set di istruzioni ARM?NOP per i binari Iphone
9
A
risposta
14
MOV r0, r0 è utilizzato tradizionalmente nel codice ARM, che ha l'opcode 0xe1a00000; MOV r8, r8 è usato nel codice POLLICE (codice operativo 0x46c0)
10
ARMv7 ha un'istruzione reale NOP
, con le seguenti codifiche:
0xbf00 2 byte thumb2 form
0xf3af8000 4 byte thumb2 form
0x*320f000 4 byte arm form
Quando nelle versioni precedenti di architettura, assemblatori traducono NOP
in MOV istruzioni che moonshadow elencati.
Non è necessario utilizzare i codici opzionali effettivi, poiché gli strumenti di sviluppo comprendono NOP
.
5
Vorrei aggiungere che il NOP non condizionale per armv7 è 0xE320F000.
Si noti che se si sta andando a rattoppare un file può essere di scrivere byte in ordine inverso (little endian) - 00 F0 20 E3
Questo non ha effetti collaterali sul architettura? –
@Stefan, io non la penso così. Queste sono le istruzioni della macchina che il mio assemblatore genera quando metto un'istruzione 'nop' nel file sorgente. –
Apparentemente Thumb2 ha un'istruzione NOP. Vedere pagina 5 di http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf – MArag