【发布时间】:2019-07-07 15:52:57
【问题描述】:
我正在尝试学习如何使用汇编语言来洗牌。我精通java,我可以很容易地将java翻译成C,但我在使用ASM时遇到了困难。这是我现在遇到问题的代码块:
MOV R8, [RDI+RSI*4]
MOV R9, [RDI+RDX*4]
MOV [RDI+RSI*4], R9
MOV [RDI+RDX*4], R8
我一直在努力
error: impossible combination of address sizes
它是用命令运行的
nasm -f elf FILE-NAME.asm
我猜我正在使用的寄存器有问题,但我不知道汇编中的规则。我正在学习使用tutorialspoint,但如果有人对其他地方有任何建议,我可以更好地了解它,那会很有帮助。我在这个answer 上也看到了所有使用的寄存器都有相同的大小,那么为什么会出错呢?
【问题讨论】: