2009-12-09 6 views

Respuesta

14

MOV r0, r0 se usa tradicionalmente en código ARM, que tiene el código de operación 0xe1a00000; MOV r8, r8 se utiliza en código pulgar (0x46c0 opcode)

+0

¿Esto no tiene efectos secundarios en la arquitectura? –

+0

@Stefan, no lo creo. Esas son las instrucciones de la máquina que mi ensamblador genera cuando coloco una instrucción 'nop' en el archivo fuente. –

+0

Aparentemente Thumb2 tiene una instrucción NOP. Consulte la página 5 de http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf – MArag

10

ARMv7 tiene una instrucción real NOP, con las siguientes codificaciones:

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

Al orientar las versiones anteriores de la arquitectura, ensambladores traducen NOP en el MOV instrucciones que moonshadow en la lista.

No debería necesitar utilizar los códigos de operación reales, ya que las herramientas de desarrollo comprenden NOP.

5

Me gustaría agregar que el NOP no condicional para armv7 es 0xE320F000.

Tenga en cuenta que si se va a arreglar un archivo necesitará para escribir bytes en orden inverso (little endian) - 00 F0 20 E3