首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ANDing堆栈指针

ANDing堆栈指针
EN

Stack Overflow用户
提问于 2017-02-25 23:35:55
回答 1查看 123关注 0票数 0

我正在做一个计算机系统考试复习题,要求知道程序中不同点处的堆栈指针偏移量,我对堆栈框架是如何设置的感到困惑。我学习32位和64位系统之间的汇编已经有几个星期了,但我还没有看到堆栈指针的指令。

谁能解释一下这是为了什么目的,在第四条指令之后%esp的偏移量是多少,并且我正确地计算了%esp?我已经在代码中注释了我认为在每条指令之后的偏移量的值。

代码语言:javascript
复制
main:
0x0x0804848a <+0>:  push    %ebp                 ;-0x4
0x0x0804848b <+1>:  mov     %esp, %ebp           
0x0x0804848d <+3>:  and     $0xfffffff0, %esp    ;[-0x4, -0x13]
0x0x08048490 <+6>:  sub     $0x20, %esp          ;[-0x24, -0x33]
0x0x08048493 <+9>:  movl    $0xa, 0x1c(%esp)         
0x0x0804849b <+17>: movl    $0xa, (%esp)          
0x0x080484a2 <+24>: call    0x804841d <r>        ;[-0x28, -0x37]  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-25 23:41:06

如果你用一个从0x3开始的堆栈指针重复你的数学,你会得到启发。

对齐。许多CPU类型都需要对齐才能获得最佳性能,或者像SSE这样的向量指令才能正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42457980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档