yanghongchen666 发表于 2020-7-22 05:10:14

第四章实验三中的一个小问题


想问一下这里的这里红圈圈起来的地方为什么要先给sp赋值为0然后在加10呢?
为什么不能mov sp,10呢?希望有大佬帮小白解答一下疑惑谢谢啦!
https://xxx.ilovefishc.com/forum/201707/16/190919ykzv8ytoi1jytx1w.jpg

yanghongchen666 发表于 2020-7-22 05:11:31

图片传不上去就是
mov sp,0
add sp,10
这两句

sunrise085 发表于 2020-7-22 09:13:47

mov sp,0   是设置栈底地址为0。add sp,10移动堆栈指针到10
若直接写 add sp,10 就变成了设置栈底地址为10
两者意义是不一样的。

若直接设置栈底,然后你就pop是会出错的,因为栈为空。

mov sp,0
add sp,10
这时栈不为空,是可以pop的

yanghongchen666 发表于 2020-7-23 07:50:18

sunrise085 发表于 2020-7-22 09:13
mov sp,0   是设置栈底地址为0。add sp,10移动堆栈指针到10
若直接写 add sp,10 就变成了设置栈底地址为 ...

明白了,谢谢大佬解释!
页: [1]
查看完整版本: 第四章实验三中的一个小问题