第3章 8086,88微处理器及系统.ppt

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

* 比较有符号数大小(条件为标志组合) 助记符 标志 说 明 JL/JNGE SF≠OF 小于/不大于且不等于(<) JNL/JGE SF=OF 不小于/大于或等于 (≥) JLE/JNG SF≠OF或ZF=1 小于或等于/不大于 (≤) JNLE/JG SF=OF且ZF=0 不小于且不等于/大于(>) 例:AX和BX为有符号数,比较大小,将较大的数放入AX中。 CMP AX,BX ; JNL NEXT ;如AX≥BX,不处理 XCHG AX,BX ; AX<BX,AX与BX交换 NEXT:…… * CMP AX, 0H JZ L1 xxxx1 L1: xxxxxxx 当8086需要的条件转移指令的转移范围超过127时,可加入无条件跳转指令 CMP AX, 0H JNZ L2 JMP L1 L2: xxxx1 L1: xxxxxxx 距离超过127 * 指 令 转移条件 说 明 JC CF=1 有进位/借位 JNC CF=0 无进位/借位 JE/JZ ZF=1 相等/等于零 JNE/JNZ ZF=0 不相等/不等于零 JS SF=1 是负数 JNS SF=0 是正数 JO OF=1 有溢出 JNO OF=0 无溢出 JP/JPE PF=1 有偶数个‘1’ JNP/JPO PF=0 有奇数个‘1’ JA/JNBE CF=0 无符号数AB JAE/JNB CF=0 OR ZF=1 无符号数A=B JB/JNAE CF=1 无符号数AB JBE/JNA CF=1 OR ZF=1 无符号数A=B JG/JNLE SF=OF AND ZF=0 有符号数AB JGE/JNL SF=OF OR ZF=1 有符号数A=B JL/JNGE SF/=OF AND ZF=0 有符号数AB JLE/JNG SF/=OF OR ZF=1 有符号数A=B * 3. 循环控制指令 在设计循环程序时,可以用循环控制指令来实现 循环控制指令实际上是一组增强型的条件转移指令,它也是根据测试状态标志判定是否满足条件而控制转移 所不同的是,前述的条件转移指令只能测试由执行前面指令所设置的标志,而循环控制指令是自己进行某种运算后来设置状态标志的 循环控制指令共有4条,都与CX寄存器配合使用,CX中存放着循环次数 循环指令所控制的目标地址的范围都在-128~+127字节之内 * LOOP 目标标号 功能是先将CX寄存器内容减1后送回CX,再判断CX是否为0,若CX≠0,则转移到目标标号所给定的地址继续循环,否则,结束循环顺序执行下一条指令 使用LOOP指令前,应将循环次数送入CX寄存器 其操作过程与条件转移指令类似,只是它的位移量应为负值。 CX←CX-1 循环条件成立? Y N * LOOPE/LOOPZ 目标标号 功能:先将CX减1送CX,若ZF=1且CX≠0时则循环,否则顺序执行下一条指令 LOOPNE/LOOPNZ 目标标号 功能:是先将CX减1送CX,若ZF=0且CX≠0时则循环,否则顺序执行下一条指令。 JCXZ 目标标号 功能:CX=0时转移,但不对CX寄存器内容进行操作 既是一条条件转移指令,也可用来控制循环,但循环控制条件与LOOP指令相反 循环控制指令在使用时放在循环程序的开头或结尾处,以控制循环程序的运行 * 例:统计ES段中string字符串包含空格的个数,设字符串的长度为count字节,结果存入result单元。 MOV CX,COUNT MOV SI,OFFSET STRING;取偏移地址 XOR BX,BX ;记录空格数目 JCXZ DONE ;字符串长度为0,退出 MOV AL,20H ;空格的ASCII码 AGAIN:CMP AL,ES:[SI] JNZ NEXT ;不是空格,不计数 INC BX ;是空格,计数 NEXT:INC SI ;调整指针,指向下一个 LOOP AGAIN ;字符个数减1,不为0,继续循环 DONE:MOV RESULT,BX; * 作业: 书P.118 3.29,3.32,3.34,3.69,3.79 * 谢谢大家 * * JCXZ: “当型循环”也可用 * 8086/8088有5种基本的串操作指令 1. 串传送: MOVS 目标串,源串 功能:将由SI作为指针

文档评论(0)

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

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

1亿VIP精品文档

相关文档