MOV指令与MOV.B指令在汇编语言中的区别

10
我正在完成 Microcorruption CTF 的挑战,它使用了一个模拟的 MSP430 CPU。
我已经看到过几个 mov 指令的例子,例如:
mov sp, r4 ; 将栈指针的值移动到寄存器 4
mov #0xfffc, r15 ; 将十六进制值 fffc 移动到寄存器 r15
我试图解释:
mov.b #0x4f, 0x0(r15)
我猜 mov.b 是二进制值 #0x4f,但我不确定 0x0(r15) 表示什么。
1个回答

16

这意味着使用字节操作:

The suffix .B at the instruction memonic will result in a byte operation

因此,只有一个字节的数据将从源复制到目标。

0x0(r15)是一种索引寻址模式,因此使用r15 + 0字节来指定目标。


谢谢...为什么要用mov.b而不是mov #0x04f,r15? - Allyl Isocyanate
3
因为你所写的将值移入了r15寄存器,而代码中的内容将该值移入了r15所指向的字节中。 - David Hoelzer
是的 - 它允许您修改指定寄存器中的一部分数据,并且可以在寄存器内的任何字节位置进行修改。 - Kieveli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接