汇编call 指令
3个回答
展开全部
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.
希望对你有用.
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.
希望对你有用.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
call指令是调用子程序,后面紧跟的应该是子程序名或者过程名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
call di 和 call dword ptr [di]都是对的,但功能(结果)不一样。
call di是说所调用的子程序的入口偏移地址=di的值,段地址CS不变(段内调用);
call dword ptr [di]是说所调用的子程序的入口的“偏移地址”存放在内存单元DS:{di]中,而其“段地址”则存在DS:[di+2]中,这是段间调用。
call di是说所调用的子程序的入口偏移地址=di的值,段地址CS不变(段内调用);
call dword ptr [di]是说所调用的子程序的入口的“偏移地址”存放在内存单元DS:{di]中,而其“段地址”则存在DS:[di+2]中,这是段间调用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询