. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
CALL和RET指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
检测点10.2答案为什么是6
[已解决]
回复[
5
次 ] 点击[
428
次 ]
pepenm
[帖 主]
[ 发表时间:2012-01-12 15:23 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-10-31 15:52
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
按理说1000:7与1000:3的偏移地址是4那答案是4才对,不过结果是6,能解释一下吗
tomato
[第
1
楼]
[ 回复时间:2012-01-14 12:58 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
ax的值是栈顶的值,栈顶的值就是call s指令的下一条指令的偏移值。
pepenm
[第
2
楼]
[ 回复时间:2012-01-14 14:38 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-10-31 15:52
call指令存的是偏移吗
tomato
[第
3
楼]
[ 回复时间:2012-01-15 09:00 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
楼主认真看一下call指令的执行原理,书上说的很清楚。看明白了,这道题就做出来了。
a605250419
[第
4
楼]
[ 回复时间:2012-01-15 13:57 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:2
信誉值:0
注册日期:2012-01-13 13:36
coll 是将下一条指令的地址入栈,而不是将偏移长度入栈
pepenm
[第
5
楼]
[ 回复时间:2012-01-15 15:55 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:13
注册日期:2011-10-31 15:52
此贴由 贴主 于 [ 2012-01-15 15:55 ] 结贴。 结贴原因:问题已解决
得分情况: 3楼(tomato):2分 4楼(a605250419):2分
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved