. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点  10.2    AX的值是多少  [已解决] 回复[ 5次 ]   点击[ 462次 ]  
wlzaini1314
[帖 主]   [ 发表时间:2011-03-20 19:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-15 22:31
我很疑惑   
看一些答案 都是  AX=6
原题
1000:0   b8  00  00   mov  ax,0
1000:3   e8  01  00   call  s
1000:6   40           inc  ax
1000:7   58         s:pop  ax

看书上写这    CALL  标号 (将当前的IP压栈后,移到标号处执行指令)
照书上说     1000:3   e8  01  00   call  s  是当前的指令  
IP=3  压栈后  应该是3啊
zhpsdbx
[第1楼]   [ 回复时间:2011-03-22 22:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2011-03-07 13:32
现在这里的人很少了啊。
因为在将call  s放入指令缓冲器并且执行指令前 ip=3+3;
所以执行后将6压入栈中 
ax=6;
jmxl
[第2楼]   [ 回复时间:2011-03-23 14:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-23 13:59
为什么IP=3+3,?谢谢
awp
[第3楼]   [ 回复时间:2011-03-23 16:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-23 16:12
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1011&qkSg=2&qID=14778&readSg=1

参考6楼回答
vane
[第4楼]   [ 回复时间:2011-03-23 18:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-18 20:58
入栈的IP是call指令后的第一个字的地址,所以ip的值该是inc ax 的地址
wlzaini1314
[第5楼]   [ 回复时间:2011-04-21 17:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-15 22:31
此贴由 贴主 于 [ 2011-04-21 17:27 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved