为什么要向堆栈指针添加地址?

时间:2020-01-10 20:37:27

标签: c assembly reverse-engineering disassembly msp430

我正在尝试理解第一个microcorruption挑战。

我想问一下主要功能的第一行。

为什么他们要将该地址添加到堆栈指针?

microcorruption

1 个答案:

答案 0 :(得分:4)

这看起来像一个16位ISA 1 ,否则反汇编是没有意义的。

0xff9c在16位2的补码中为-100,因此看起来main保留100字节的堆栈空间供使用。 (大多数计算机上的堆栈向下增长)。 这不是地址,只是很小的偏移量。

有关MSP430堆栈布局和用法的详细示例,请参见MSP430 Assembly Stack Pointer Behavior


脚注1:可能是MSP430? http://mspgcc.sourceforge.net/manual/x82.html是具有这些寄存器名称和those mnemonics的16位ISA,我认为其机器代码使用长度可变的2或4字节指令。

绝对不是ARM; calljmp不是ARM助记符;分别为blb。同样,ARM使用op dst, src1, src2语法,而此反汇编使用op src, dst

相关问题