x86 - Why does 0xE1 0x4F disassemble to different instructions in LLVM and NDISASM? -


in bash shell:

$ echo "0xe1 0x4f" | llvm-mc-3.2 -disassemble -triple i386      .section    __text,__text,regular,pure_instructions     loope   79 $ echo -n "\xe1\x4f" | ndisasm -b 32 -                     00000000  e14f              loope 0x51 

but 0x51 81 in decimal.

it should disassemble as

loope *+79 

that is, loop branch relative forward 79 bytes. in ndisasm case, instruction @ address 0 (so next instruction, relative branch computed off, address 2), computes target (absolute) address you: 2+79 = 81 (0x51)


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -