Suponiendo que la arquitectura de la CPU Intel Atom 2008 de Ubuntu 14.04 32 bit y x_86, ¿cuántos bytes lee el formato %x
de la pila?
Sé que puedo leer lo que está en la pila usando:
formatstring="%x";
printf(formatstring);
A medida que pongo más %x
en la cadena de formato, se leen más datos de la pila.
Dado que %x
toma 4 bytes, cada %x
debería leer 4 bytes de la pila, por ejemplo, si el 1er %x
lee lo que está escrito en la dirección 0x0
, 2nd
leerá lo que está en la dirección 0x4
y así sucesivamente (obviamente, los números son solo para mí para facilitar la explicación).
¿Es correcto este supuesto? Parece que no, ya que cuando intenté en un ejercicio calcular la dirección de una var haciendo known_address + (numberof %x untill_the_var_value_is_printed )* 4
, encontré una dirección incorrecta.