汇编call 指令

请问calldi这句指令有错吗,是不是要改成calldwordptr[di]... 请问 call di 这句指令有错吗 ,是不是要改成 call dword ptr [di] 展开
 我来答
百度网友0c1f95dde2
2020-02-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:965万
展开全部
call
word
ptr
?[?]是段内调用,只是先把当前指令的下一条指令的ip压栈,然后将?[?]下的内容给ip,然后继续执行.
在压栈时是sp=sp-2,ss:[sp]=压栈的ip值.

call
dword
ptr
?[?]是段间调用,只是先把当前的cs压栈,然后将指令的下一条指令的ip压栈,然后将?[?]下的内容给ip,
?[?+2]的内容给cs,然后继续执行.
这里是sp=sp-2;ss:[sp]=压栈的cs,然后sp=sp-2;ss:[sp]=压栈的ip.

希望对你有用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李成勇律师
2009-01-06 · 律师
李成勇律师
采纳数:406 获赞数:1270

向TA提问 私信TA
展开全部
call指令是调用子程序,后面紧跟的应该是子程序名或者过程名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sd_jack
推荐于2016-08-25 · TA获得超过1704个赞
知道小有建树答主
回答量:553
采纳率:0%
帮助的人:0
展开全部
call di 和 call dword ptr [di]都是对的,但功能(结果)不一样。
call di是说所调用的子程序的入口偏移地址=di的值,段地址CS不变(段内调用);
call dword ptr [di]是说所调用的子程序的入口的“偏移地址”存放在内存单元DS:{di]中,而其“段地址”则存在DS:[di+2]中,这是段间调用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式