首页
社区
课程
招聘
[求助]关于汇编执行mov sp,16后的栈空间问题
发表于: 2016-8-30 17:22 2370

[求助]关于汇编执行mov sp,16后的栈空间问题

2016-8-30 17:22
2370

如图产生如下2个问题:

Q1:图中第一部分显示在执行mov sp,10h之前,ss:sp指向的堆栈空间为0B3D:0,但是执行了这句之后查看栈的内存    如图中第二部分   按中断机制  先存标志到0B3D:000E(2个字节),然后CS入栈(0B3D:000C~0B3D;000D),  接着IP入栈(0B3D:000A~0B3D:000B),那么0B3D:0006这个内存单元里的3是什么,而且装进去的标志寄存器的值是549H,可是549H换成16位二进制是010101001001,和此时的寄存器不匹配啊,光是看CF显示的NC(即0),而二进制最低位是1,为什么?

Q2:对比图中的第2部分和第3部分,执行了一句Push,按平常的理解应该将0B3D:000E~0B3D:000F的内存改写成AX(即将原有的0549覆盖成0003),然而  图第3部分   显示竟然没覆盖  而是惊奇的是将原有的0B3D:0~0B3D:F这一段内存的数据分别放在相对于原地址-1的内存中 即“左移一个单元”然后在栈最底端加入了AX的值,这是栈么 怎么感觉像队列,萌新一脸懵逼,求解惑

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//