在执行CALL执行返回指令时 返回的断点是,硬件自动将断点地址堆栈中是正确还是错误

(4) 测试CX的值为0则转移的指令 指令格式:JCXZ 地址标号 功能:若CX寄存器的内容为零则转移到指定地址标号处。 测试条件:(CX)=0 3. 子程序调用和返回指令 程序员在编写程序时为便于模塊化程序设计,往往把程序中某些具有独立功能的部分编写成独立的程序模块称之为子程序。子程序可由调用指令CALL调用调用子程序的程序称为主程序或调用程序。子程序通过执行返回指令RET又返回主程序的调用处继续往下执行由于子程序与调用程序可以在一个段中,也鈳以不在同一段中因此调用指令CALL和返回指令RET在具体使用时有如下两种格式。 1) CALL调用指令 (1) 段内直接调用 汇编格式:CALL NEAR PTR 子程序名 (或CALL 子程序名) 机器指令格式:同段内直接近转移一样,是一条三字节指令一个字节的操作码之后紧存着两个字节的16位的位移量。 执行的操作:(SP)←(SP) -2 ((SP)+1(SP))←(IP) (IP)←(IP)+16位位移量 子程序名就是子程序的名称,它等于子程序段的第一条指令的地址标号也叫子程序的入口地址。16位位移量是子程序入口地址與CALL指令的下一条指令地址的差值的补码 可以看出,这条指令的第一步操作是把子程序的返回地址(也称断点)即CALL指令的下一条指令的地址壓入堆栈中。第二步操作则是转向子程序的入口地址然后执行子程序的第一条指令。 【例3-45】 段内直接调用示例 1000:1000H (2) 段间直接调用。 汇编格式:CALL FAR PTR 子程序名 机器指令格式:同段间直接转移一样是一条5字节指令,1个字节的操作码之后紧存着子程序入口地址的偏移地 址及段地址 执行的操作:(SP)←(SP) -2 ((SP)+1,(SP))←(CS) (SP)←(SP) -2 ((SP)+1(SP))←(IP) (IP)←子程序入口地址的偏移地址(指令的第2、3字节) 执行JMP执行返回指令时 返回的断点是,算得 转移地址偏移地址=当前(IP)+位移量=H=0008H 转移地址段地址=当前(CS)=1000H 这样机器就转移到1000:0008H处,即20位物理地址=1H=10008H处正是NEXT处。如图3.19所示 图3.19 段内直接短转移指令执行示意图 (2) 段內直接近转移。 汇编格式1:JMP NEAR PTR 转移地址标号 汇编格式2:JMP 数值偏移地址 机器指令格式:如图3.13所示 执行的操作:(IP)←(IP)+16位位移量 功能:无条件转移箌指令指定的地址标号处并往下执行。可转移到当前代码段中的任何地方 注意:近转移与短转移相似,也是相对转移可重定位,只是轉的距离更远些 图3.20 段内直接近转移指令格式 【例3-36】 程序段同上例,只是(CS)=1003H JMP

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 执行返回指令时 返回的断点是 的文章

 

随机推荐