gpt4 book ai didi

c - 为什么我要向堆栈指针添加一个地址?

转载 作者:行者123 更新时间:2023-11-30 18:27:06 25 4
gpt4 key购买 nike

我试图理解第一个 microcorruption挑战。

我想问一下main函数的第一行。

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

microcorruption

最佳答案

这看起来像一个 16 位 ISA1,否则反汇编就没有意义。

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

参见MSP430 Assembly Stack Pointer Behavior了解 MSP430 堆栈布局和使用的详细示例。

<小时/>

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

这绝对不是ARM; calljmp 不是 ARM 助记符;那将是 blb。此外,ARM 使用 op dst, src1, src2 语法,而此反汇编使用 op src, dst

关于c - 为什么我要向堆栈指针添加一个地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com