I ran objdump 2.17 on ls on a Debian 4 system, because I was looking for a form of pop which I had never knew existed, namely the 0x8f opcode form.
>From the intel spec: 8F /0 POP r/m32 N.E. Valid Pop top of stack into m32; increment stack pointer.(Vol 2B page 4-130) Now, the /0 I interpret from Vol 2A page 3-2 /digit — A digit between 0 and 7 indicates that the ModR/M byte of the instruction uses only the r/m (register or memory) operand. The reg field contains the digit that provides an extension to the instruction's opcode. which in this case, since it's /0 would mean it's all the various forms which deal with eax on Vol 2A page 2-7. So this makes sense to me: 8048984: 8f 00 popl (%eax) But this does not: 80593f0: 8f ec pop %esp because that's not R/M = 0. I know that this is just objdump trying to disassemble data, but shouldn't it just say "(bad)", rather than printing out an instruction which can't exist? Thanks Gary Guy _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils