. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
主题 : :
第三章最后一个任务整不明白
[待解决]
回复[
25
次 ] 点击[
2527
次 ]
helloworld
[帖 主]
[ 发表时间:2007-10-25 11:21 ]
荣誉值:10
信誉值:6
注册日期:2007-10-20 14:34
0B07:0100 mov ax,2000
0B07:0103 mov ss,ax
0B07:0105 mov sp,10
0B07:0108 mov ax,3123
0B07:010B push ax
0B07:010C mov ax,3366
0B07:010F push ax
实验问我20000H---2000FH的数据为什么会改变,那这不明摆着代码将栈段设为20000H-2000FH这个范围,push以后,肯定是将ax的数据压进这个段里的,那所以就变了嘛,但我不知道他怎么把cs:ip的数据压进去了,而不是将3123压进去?
huige
[第
7
楼]
[ 回复时间:2008-04-30 23:05 ]
荣誉值:0
信誉值:0
注册日期:2008-03-15 23:01
回复二楼:
我用debug分别令bx,cx,dx,bp,si,di,ds,es取得不同的值
最后发现ip前面的那个字是bp的值,后来又改变了bp的值(用r bp直接改的),然后查看栈中的内容,并没变化。
但是执行了push指令后,再来查看发现那个位置改变了(和bp一致)。但是标志寄存器不明白是什么呵呵,还有ax之前还有很多空间为0,不知道前面还有哪些寄存器的值被临时存放在了栈中。
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved