. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  call指令将IP压栈,压的是CALL..的IP还是CALL..下一条指令的IP?  [待解决] 回复[ 4次 ]   点击[ 434次 ]  
klopin
[帖 主]   [ 发表时间:2008-06-04 22:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-05-11 13:33
call指令将IP压栈,压的是CALL..的IP还是CALL..下一条指令的IP?

检测点10.5中的,call word ptr ds:[0eh]如果压的是call...指令的IP那检测10.5就成了死循环,如果压的是call...的下一条指令,那书上10.3说的"call 标号(将当前的IP压栈后,转到标号处执行指令)"据我理解,当前IP应该就是指的是CALL指令的IP.

难道检测点10.5是死循环?

请各位大牛帮忙解答一下
peterhui
[第1楼]   [ 回复时间:2008-06-04 22:47 ]   [引用]   [回复]   [ top ] 
荣誉值:24
信誉值:21
注册日期:2007-08-13 23:04
当CPU读取一条指令后,IP中的值自动增加,以使CPU可以读取下一条指令。也就是说CPU读取指令“CALL 标号”时CPU将IP中的值自动增加,此时的IP值指向下一条指令,我想应该可以这样理解。
mouse
[第2楼]   [ 回复时间:2008-06-05 09:14 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
这个在前四章就讲过,执行当前指令的时候,此时指令指向下一条指令,当然指令call指令的时候压入的cs ip也就知道了

还有就是10.5的程序不能用debug调试,说上有说明。
debugk
[第3楼]   [ 回复时间:2008-06-19 11:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-13 10:30
下一条,见课本P185
sysnap
[第4楼]   [ 回复时间:2008-06-19 16:27 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2008-01-15 12:22
这个第二章时候就讲过,楼主再看看书,是下一条.
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved