2009-12-09 13 views

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)

+0

Questo non ha effetti collaterali sul architettura? –

+0

@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. –

+0

Apparentemente Thumb2 ha un'istruzione NOP. Vedere pagina 5 di http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf – MArag

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