2011-09-25 8 views
8

No estoy exactamente seguro de lo que esta instrucción add está haciendo:No estoy exactamente seguro de lo que este X 86 Añadir la instrucción está haciendo

add 0x0(%rbp,%rbx,4),%eax 

Si se tratara:

add %rbx,%eax 

sé que agregaría los contenidos de rbx y los contenidos en eax y los almacenará nuevamente en eax. Sin embargo, el 0x0(%rbp,%rbx,4) me está tirando.

+0

Para referencia: [Dirección sintaxis del operando] (http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax#Address_operand_syntax). – outis

Respuesta

15

Eso es porque es estúpido & confundir AT & T sintaxis.
En la sintaxis normal de Intel es add eax,dword ptr[rbp+4*rbx+0] es decir, agregue el dword en rbp + 4 * rbx a eax.

+7

+1 La sintaxis de AT & T apesta, evítala como la peste. – Johan

Cuestiones relacionadas