微原转移指令循环控制指令资料全.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.10 循环控制指令 4. JCXZ指令 JCXZ(Jump if register CX=0)指令经常与循环指令配合使用。如果循环次数(CX)设定为0,则要循环65536次(最大的循环次数),这一点与常规表示不同。为此,应该在进入循环前检查(CX)的值,如果(CX)为0,则跳过循环,这时可以采用JCXZ指令完成,其结构为: MOV CX, VAR1 ;设定循环次数,可能为0 JCXZ DONE ;当(CX)=0时,跳过循环 ;循环准备 L3: ;循环体 LOOP L3 DONE: 3.10 循环控制指令 例3.31 设在BUFFER中已经保存有字型数据,其中前2个字节为数据的个数,计算数据的差分,并保存在DIFF缓冲区中。 解:数据的差分定义为 设在数据段中已经定义缓冲区: BUFFER DW n DW X1,X2,…,Xn DIFF DW n-1 DUP(?) 然后,可以在代码段中设计程序: LEA SI,BUFFER MOV CX,[SI] ADD SI,2 JCXZ PROCEND ;当(CX)=0时,跳过循环 LEA DI,DIFF MOV AX,[SI] ADD SI,2 PROC1: ADD AX,[SI] SHR AX,1 ;完成(AX)÷2操作 MOV [DI],AX ;保存差分结果 ADD DI,2 MOV AX,[SI] ADD SI,2 LOOP PROC1 PROCEND: 3.10 循环控制指令 练习: 有一字符串,存放在ASCIISTR的内存区域 中,字符串的长度为L。 要求:在字符串中查找空格(ASCII为20H), 找到则继续运行,否则转到NOTFOUND 去执行。 谢谢大家! 感谢您的观看! 本教案内容 第3章 8086CPU指令系统 汇编语言指令 8086指令分类 数据与转移地址的寻址方式 数据传送类指令 算术运算类指令 逻辑运算类指令 移位类指令 标志位操作指令 转移指令 循环控制指令 子程序调用返回指令 中断调用返回指令 字符串操作指令 I/O输入输出指令 其它指令 宏指令 寻找的操作数作地址用,给IP或给CS:IP, 从而实现程序的转移。 如果程序转移后只有IP发生了改变,则称 为段内转移或者称为近程转移(也称为NEAR 型转移)。 如果程序转移后CS、IP均发生了改变,则 称为段间转移或者称为远程转移(也称为FAR 型转移)。 3.9 转移指令 8086指令系统中的转移指令有两大类: 无条件转移指令:有JMP、CALL、RET、IRET 条件转移指令:如JZ、JC、JCXZ、LOOP等。 3.9 转移指令 3.9 转移指令 一、无条件转移指令 格式: JMP LABEL ;转移到标号LABEL处执行程序 JMP REG16 ;转移到由通用寄存器REG指定的位置执行程序 JMP MEM ;转移到由存储单元MEM指定的位置执行程序 3.9 转移指令 说明: 在JMP LABEL中,LABEL为标号,当LABEL与该转移指令位于同一个段内时,则为段内直接转移,转移目的地址的(CS)不变,(IP)←(IP)+DISP16,其中DISP16表示转移目的地址与JMP转移指令之间的16位偏移量,这时也称为近(程)转移。当转移目的地址与JMP转移指令之间的偏移量可以用8位有符号数表示时,则(IP)←(IP)+DISP8,这时称为短转移。 当LABEL与JMP指令位于不同段内时,则表示段间直接转移,转移目的地址为(CS)←SEG LABEL,(IP)←(IP)+ OFFSET LABEL,这时也称为远(程)转移。 3.9 转移指令 例如,为完成转移到L1标号处,可以采用JMP L1,这时并不需要特别指出转移指令的种类,宏汇编程序(MASM)会根据标号L1的位置,自动生成相应的指令代码。 如果要根据BX的内容进行转移,即BX中存放有转移的目的地址,则采用 JMP BX指令。 设双字变量VAR1存放有转移的目的地址,则可以采用 JMP VAR1完成程序的段间转移。 3.9 转移指令 例3.29 各种转移方式示例。 解:设在数据段中定义变量: DBT1 DW 0400H DBT2 DD 0100 0020H TAB DW 0600H,0640H,06A0H 则在代码段中有: MOV BX, 2 JMP BX ;转移到CS:0002H JMP DBT1 ;

文档评论(0)

zxiangd + 关注
实名认证
文档贡献者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档