网站大量收购闲置独家精品文档,联系QQ:2885784924

3-10循环控制指令过程调用跟返回指令串操作指令中断.ppt

3-10循环控制指令过程调用跟返回指令串操作指令中断.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3-10循环控制指令过程调用跟返回指令串操作指令中断

3.判断下列执行程序后,BX的内容 MOV CL 3 MOV BX 0B7H ROL BX 1 ROR BX,CL 4.指出下面程序段的功能 CLD LEA DI, [1200H] MOV CX, 0F00H XOR AX, AX REP STOSW 5.写出完成下列功能的程序段 (1)从地址DS:0012H中送一个数据56H到AL寄存器。 (2)AL的内容与字节单元DS:0013H中的内容相乘,乘积存入子单元DS:0014H。 四 控制转移指令 转移类指令 循环控制指令 过程调用和返回指令 中断控制类指令 2 循环控制指令 用在循环程序中以确定是否要继续循环。 循环次数通常置于CX中。 转移的目标应在距离本指令-128~+127的范围之内。 循环控制指令不影响标志位。 格式:LOOP label 操作:(CX)-1→CX; 若(CX)≠0,则转至label处执行; 否则退出循环,执行LOOP后面的指令。 LOOP指令与下面的指令段等价: DEC CX JNZ label (1)循环转移指令LOOP (2) LOOPZ (LOOPE) 格式:LOOPZ label 操作:(CX)-1→CX; 若(CX)≠0且ZF=1,则转至label处继续循环; 否则退出循环,执行LOOP后面的指令。 (3) LOOPNZ (LOOPNE) 格式:LOOPNZ label 操作:(CX)-1→CX; 若(CX)≠0且ZF=0,则转至label处继续循环; 否则退出循环,执行LOOP后面的指令。 3 过程调用和返回指令 过程(子程序): 一段具有特定功能的,供其它程序调用的公用程序。 特点 调用子程序时,IP(CS)的内容被压入堆栈栈顶。从子程序返回时,栈顶的内容又被弹出到IP(CS)。 子程序执行结束后一般均要返回调用程序。 一次定义,可多次调用; 可带参数调用,以完成不同的功能。 (1)调用指令CALL 一般格式:CALL sub ; sub为子程序的入口。 根据子程序入口的寻址方式,子程序调用有四类。 ① 段内直接调用 子程序的偏移地址直接由CALL指令给出。 格式:CALL NEAR_PROC CALL执行时,它首先将IP内容压栈,然后把指令中给出的位移量加到IP上。 ②段内间接调用 子程序的偏移地址在寄存器或存储器中。 格式:CALL mem16/reg16 CALL执行时,它首先将IP内容压栈,然后把指定的寄存器/存储器的内容送入IP。 例: CALL AX ;调用地址由AX给出 CALL WORD PTR[SI] ;调用地址由存储器给出. 例:对于 CALL WORD PTR [SI]这条指令 若:(DS) = 8000H,(SI) = 1200H 则指令操作图示如下。 CALL IPH IPL 代码段 数据段 81200H 81201H ③段间直接调用 子程序的段地址和偏移地址直接由CALL指令给出。 格式:CALL FAR_PROC ;FAR_PROC为远过程的地址 指令的操作: ((SP)-1,(SP)-2)←(CS) ;原CS压栈 SP←(SP)-2 CS←新段地址 ((SP)-1,(SP)-2)←(IP) ;原IP压栈 SP←(SP)-2 IP← 新偏移地址 例:CALL 2000H:1000H ④段间间接调用 子程序的段地址和偏移地址为存储器的连续4个单元中的内容。 格式:CALL mem32 指令的操作为: ((SP)-1,(SP)-2)←(CS) ;原CS压栈 SP←(SP)-2 CS←(mem32+2) ((SP)-1,(SP)-2)←(IP) ;原IP压栈 SP←(SP)-2 IP←(mem32) 例:CALL DWORD PTR[DI] 调用地址在[DI],[DI]+1,[DI]+2,[DI]+3四个存储单元中。低字内容为偏移地址,高字内容为段地址。 CALL 代码段 数据段 IPH IPL CSH CSL [DI] [DI]+1 [DI]+2 [DI]+3 CALL DWORD PTR [DI] (2)返回指令RET

文档评论(0)

my18 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档