Aqui teremos $esp apontando novamente para 0xc0000000 e teremos no registrador $eax o valor 0x00000001.Para explicar melhor, criei um artigo em específico.
Note que o processador trata de forma diferente os números: Ao inves de ser "0x00000001", como nós, seres humanos tratamos, o processador calcula de forma inversa. Isto é o que chamamos de Little Endian e Big Endian, a arquitetura x86 (PC) sempre usa Little Endian (a forma invertida). Outros processadores, como os da SUN utilizam Big Endian.
Para nao nos confundirmos, trataremos todos os endereços pela forma HUMANA, ox00000001. O Gdb, quando pedimos para mostrar a memoria, já trata de inverter de 4 em 4, para ficar mais "humana" a leitura.
Somente aviso que na verdade o número está invertido, pois, se olhares um binário por um hexedit, notarás que aonde existem números, eles estão "invertidos".
Boa leitura :)
http://docs.google.com/Doc?id=dgwgq5zv_78f359gp
Vida Longa e prospera!
Dúvidas, por favor, perguntem :]

Nenhum comentário:
Postar um comentário