永发信息网

调用子程序指令如call执行后,sp保持不变

答案:1  悬赏:70  手机版
解决时间 2021-01-26 10:36
调用子程序指令如call执行后,sp保持不变
最佳答案
1.调用指令CALL
调用指令CALL的基本功能就是将返回地址(即:调用指令的下一条指令的地址)压入堆栈,并转向子程序的入口地址处;调用指令可分为段内调用和段间调用;段内调用时,由于主程序与子程序在同一个段内,因此,调用前后,段寄存器CS的内容不会发生变化,因而,返回地址只需保存偏移地址即可,比如上述调用指令中的前两条指令;段间调用时,主程序与子程序不在同一个段内,此时,调用指令执行后,CS和IP的内容都会发生变化,因此,保存的返回地址必须要包含它的段地址和段内偏移地址两个部分;
子程序入口地址的寻址方式与无条件转移指令的待转向地址的寻址方式基本相同;
(1).段内直接调用指令"CALL OPR":指令中的OPR为子程序名,它代表了子程序的入口地址,其寻址方式为相对寻址方式;相对位移量是16位,它是子程序入口地址与返回地址的差值;
(2).段内间接调用指令"CALL OPR1":指令中的OPR1指出了存放子程序入口地址的那个存储单元,上述指令中的EA即为OPR1的有效地址,其寻址方式可以是除了立即数寻址方式和段寄存器寻址方式之外的任何寻址方式;因为是段内调用,所以,EA对应存储单元中存放的是子程序入口地址的16位偏移地址;
(3).段间直接调用指令"CALL FAR PTR OPR":指令中的OPR为过程名或子程序名,同样代表了过程或子程序的入口地址,其寻址方式为直接寻址方式,即:指令的机器码中直接给出了过程或子程序入口地址的段地址和偏移地址;
(4).段间间接调用"CALL OPR1":指令中OPR1的含义和寻址方式与段内间接调用指令相同,不同的是有效地址EA对应存储单元中存放的是子程序入口地址的段地址和偏移地址;
假设某程序中已经定义了子程序SEARCH1和PMOVE,以及变量SADR,那么,我们有以下调用指令:
CALL SREACH1 ;段内直接调用
CALL FAR PTR PMOVE ;段间直接调用
CALL BX ;段内间接调用
CALL WORD PTR [BX] ;段内间接调用
CALL SADR ;SADR是字变量,则是段内间接调用;SADR是双字变量,则是段间间接调用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
目前名侦探柯南中最受人欢迎的女角
顺丰快递刚交给快递员又要了回来,钱能退回来
一个人在河边走着,突然看见一只猫掉进了水里
【日本向谁投降的】日本天皇向公众宣布无条件
公司电话为什么要加拨17969才能打长途?
从《晏子进谏》这则故事中可以看出晏子是一个
因数和倍数的区别?
灰色城邦1.8攻略 灰色城邦1.8洛丹伦的灾难攻
下图表示生物新物种形成的基本环节,下列叙述
惠普pro tablet 608怎么样
羽绒服被划破了一小孔,怎么办好啊?
成语钓名要誉的意思是什么啊?有知道释义的请
用了6年的美的燃气热水器水温度在40度以上就
jsp 文件占tomcat内存吗
男朋友对自己的亲妹妹太过关心,我很郁闷。
推荐资讯
成语度长絜大的意思是什么啊?有知道释义的请
徐州哪里卖烧烤配料
总线如何分类?什么是系统总线?系统总线又分
oracle,检索的时候 <>(不等于) 、 >(大于
圣元净水器sy-a20价格查询
简答幼儿数学教育的基本观点?
无结婚证、无生育证,出生的小孩,办户口,要
麻雀有几次吻戏(多吗?)
循字5笔什么写
程序模拟键盘输入,循环按键 回车-上键-回车
福建一级建造师什么时候拿证书
一个育龄妇女输卵管结扎后,她将AA. 完全失去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?