<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 23, 2016 at 2:44 PM, Jun Koi <span dir="ltr"><<a href="mailto:junkoi2004@gmail.com" target="_blank">junkoi2004@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi,<br><br>I found a mismatch between assembler & disassembler of X86: I assembled an instruction, then disassembled the output, but the result is not the same as the first original code: "add qword ptr [205163983024656], 1" vs " add qword ptr [1985229328], 1"<br><br>Anybody knows what is wrong?<br><br>Thanks.<br><br><br>$ echo "ADD QWORD PTR [0xba9876543210], 0x1"|llvm-mc -assemble -triple=x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding           <br>    add    qword ptr [205163983024656], 1 # encoding:[0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01]<br><br>$ echo "0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01"|llvm-mc -disassemble -triple=x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding<br>    add    qword ptr [1985229328], 1 # encoding: [0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01] <br></div></blockquote><div><br></div><div>To make it more clear, here is the same thing again, but with hexa immediate. You can see the difference in memory address: 0xba9876543210 vs 0x76543210.<br><br><br>$ echo "ADD QWORD PTR [0xba9876543210], 0x1"|llvm-mc -assemble -triple=x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding -print-imm-hex<br>    .text<br>    add    qword ptr [0xba9876543210], 0x1 # encoding: [0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01]<br></div></div><br><br>$ echo "0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01"|llvm-mc -disassemble -triple=x86_64 -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding -print-imm-hex<br>    .text<br>    add    qword ptr [0x76543210], 0x1 # encoding: [0x48,0x83,0x04,0x25,0x10,0x32,0x54,0x76,0x01]<br><br><br><br></div></div>