79558207

Date: 2025-04-06 12:48:55
Score: 3
Natty:
Report link

I was now able to verify that all of my x86-instructions work. Thank you all for your help.

But with x64, I found a related issue (I think):

The code 0x4D895C00 should be disassembled to "mov %r11,(%r12)" (move 8 bytes from %r11 to the memory address in %r12). I have verified that multiple times (maybe I've overlooked something).

When I use the GNU assembler for this instruction, I get 0x4d891c24, which is also valid (it uses a SIB-encoding, while I'm using a displacement). Disassembling works in that case.

When I feed my code into objdump, I get however:

0000000000000000 <.data>:
   0:   4d                      rex.WRB
   1:   89                      .byte 0x89
   2:   5c                      pop    %rsp
        ...

So objdump doesn't even recognize 0x89 as a mov-opcode. Why?

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Blacklisted phrase (0.5): Why?
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: user1994405