mov.b 指令中的负操作数
Negative operand in mov.b Instruction
我目前正在解决 Microcorruption CTF 中的 Hanoi 阶段。此 CTF 重点关注 MSP430 系列(RISC,16 位)。
我偶然发现了以下几行:
445c: c443 fcff mov.b #0x0, -0x4(r4)
.
.
.
4472: 5f44 fcff mov.b -0x4(r4), r15
其中包含引用 (r4) 前面的负操作数的移动指令。
我假设这将指向存储在 r4 中的任何内容前面的寄存器(前面的两个词)但是查看内存转储这个假设似乎不正确。
我参考了https://www.ti.com/lit/ug/slau049f/slau049f.pdf,第3-52页是对mov.b的参考。
请详细说明这里发生了什么,或者给我一些关键字来搜索。
感谢任何帮助!
P.S.: 请不要破坏如何解决这个阶段,我想自己想办法。谢谢!
正如Peter Cordes评论中所指出的,我最初的想法是正确的。 (虽然措辞不对)
memoryaddress中存储的值等于r4中存储的值加上偏移量-4的总和减寄存器加-4(偏移量)和 存储在 r15 中。
原来如此。
示例:
如果
r4 = 0x43FC
和
0x43F8 = 0xAB
说明
mov.b -0x4(r4), r15
将产生值
0x43FC - 0x4 = 0x43F8
在这个地址,存储了0xAB。
结果:
r15 = 0xAB
我目前正在解决 Microcorruption CTF 中的 Hanoi 阶段。此 CTF 重点关注 MSP430 系列(RISC,16 位)。
我偶然发现了以下几行:
445c: c443 fcff mov.b #0x0, -0x4(r4)
.
.
.
4472: 5f44 fcff mov.b -0x4(r4), r15
其中包含引用 (r4) 前面的负操作数的移动指令。 我假设这将指向存储在 r4 中的任何内容前面的寄存器(前面的两个词)但是查看内存转储这个假设似乎不正确。
我参考了https://www.ti.com/lit/ug/slau049f/slau049f.pdf,第3-52页是对mov.b的参考。
请详细说明这里发生了什么,或者给我一些关键字来搜索。
感谢任何帮助!
P.S.: 请不要破坏如何解决这个阶段,我想自己想办法。谢谢!
正如Peter Cordes评论中所指出的,我最初的想法是正确的。 (虽然措辞不对)
memoryaddress中存储的值等于r4中存储的值加上偏移量-4的总和减寄存器加-4(偏移量)和 存储在 r15 中。
原来如此。
示例:
如果
r4 = 0x43FC 和 0x43F8 = 0xAB
说明
mov.b -0x4(r4), r15
将产生值 0x43FC - 0x4 = 0x43F8
在这个地址,存储了0xAB。
结果:
r15 = 0xAB