使用 x64 汇编器引用内存
Using an x64 assembler to reference memory
我正在使用这个汇编器:https://defuse.ca/online-x86-assembler.htm#disassembly
有谁知道如何对内存操作数进行编码?例如,英特尔 x64 手册第 457 页上的 ADD:ADD r/m8, imm8。我原以为它会像 'ADD 0x1122334455667788, 0x01' 但它说 "Error: operand type mismatch for `add'"
在英特尔汇编语法中,您需要使用方括号来表示您正在引用内存地址处的值,并且还包括大小信息。
ADD DWORD PTR [0x11223344], 0x55
有关详细信息,请参阅 https://www.cs.virginia.edu/~evans/cs216/guides/x86.html#memory 的 "Addressing Memory" 和 "Size Directives"。
-- 编辑:修正答案以确认可以直接访问内存。
我正在使用这个汇编器:https://defuse.ca/online-x86-assembler.htm#disassembly
有谁知道如何对内存操作数进行编码?例如,英特尔 x64 手册第 457 页上的 ADD:ADD r/m8, imm8。我原以为它会像 'ADD 0x1122334455667788, 0x01' 但它说 "Error: operand type mismatch for `add'"
在英特尔汇编语法中,您需要使用方括号来表示您正在引用内存地址处的值,并且还包括大小信息。
ADD DWORD PTR [0x11223344], 0x55
有关详细信息,请参阅 https://www.cs.virginia.edu/~evans/cs216/guides/x86.html#memory 的 "Addressing Memory" 和 "Size Directives"。
-- 编辑:修正答案以确认可以直接访问内存。