
mslomp
(usa Slackware)
Enviado em 30/08/2008 - 19:51h
considerando a "desmontagem" apenas da seção .text (código),
observe as três colunas de dados geradas pelo objdump:
coluna 1:
posição de memória (relativa ao processo) que alimentará o registrador eip (instruction pointer, x86-32). pode ser modificada através da diretiva org
coluna 2: opcode da instrução. ou seja, esse é o código de máquina em formato hexadecimal. cada opcode é construído a partir da instrução correspondente, onde entra em jogo o mnemônico, os operandos, o modo de endereçamento, flags, etc, e é estritamente dependente da arquitetura.
coluna 3:
aqui a diferença entre o -d e -s.
-d: produz na saída o código assembly correspondente à instrução/opcode - logicamente sob o formato assembly específico para o processador em questão.
-s: produz na saída o código máquina "puro". cada opcode está ali representado por seu equivalente numérico no formato ascii.