注册 登录
编程论坛 汇编论坛

新手问几个有关栈的问题

kstg4703904 发布于 2016-03-02 10:34, 5338 次点击
1.
只有本站会员才能查看附件,请 登录

红线那里是不是描述错误?段地址不应该是1000吗?

2.
只有本站会员才能查看附件,请 登录

这段话的意思是不是执行pop ax后,2266H还是在内存中,但不在栈中?如果是的话,那么是不是说虽然执行pop指令后会让内存中的数据传送到另一个地方,但不会让内存中的数据消失?

3.
只有本站会员才能查看附件,请 登录

这段内容当中哪部分是代码段?我只看到了数据段和栈段。

4.
只有本站会员才能查看附件,请 登录

二进制机器码在内存中不是要么就是指令,要么就是数据吗?为何会什么也不是?
1 回复
#2
wmf20142016-03-02 21:18
1,红线部分没问题,短地址是1000,而000e是栈指针或叫偏移地址,合起来的栈指针的物理地址为1000eH
2,执行pop ax后,可理解为将栈指针处的数据拷贝到寄存器ax处,然后栈指针+2,指向新地址。
3,代码段由段寄存器cs决定,cs:ip指向的地址即为当前执行代码地址。
4,所谓什么都不是即表示其数据为无用的垃圾数据,你一样可以访问操作的。
1