[工学]6第4章续指令系统之具体指令 微机原理.ppt

[工学]6第4章续指令系统之具体指令 微机原理.ppt

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

西南交通大学电气学院 8086/8088指令系统(续) 2.2逻辑指令 3.串操作指令 例:在数据段内以Block为首地址的100个字节数,试统计其正数和负数的个数,并分别将正数的个数放在DH中,负数的个数放在DL中。编程如下: 转移指令应用举例 MOV DX,0 MOV CX,100 LEA BX,Block AGAIN:MOV AL,[BX] CMP AL,0 JL SMALL JG GREAT NEXT:INC BX DEC CX JNZ AGAIN HLT SMALL:INC DL JMP NEXT GREAT:INC DH JMP NEXT ;DX清零 ;循环次数为100 ;数据段首地址赋给BX ;取第一个数据 ;与0进行比较 ;如果AL0则跳转至SMALL ;如果AL0则跳转至GREAT ;BX减1 ;CX减1 ;若CX不为0则跳转到AGAIN执行 ;停止 ;DL加1 ;无条件跳转到NEXT执行 ;DH加1 ;无条件跳转到NEXT执行 4.2循环控制指令 (1)计数循环指令 格式:LOOP TARGET 功能:每执行一次LOOP指令,CX的内容减1,若CX≠0,则循环转移到目的地址TARGET重复执行其间的程序段,直到CX=0,退出循环,顺序执行下条指令。 (2)结果为零或相等时的循环指令 格式:LOOPZ TARGET/LOOPE TARGET 功能:使CX-1,当CX≠0,且ZF=1时,则循环转移至目的地址TATGET去重复执行其间的程序段。当CX=0,或ZF=0,退出循环,顺序执行本指令的下条指令。 (3)结果不为零或不相等时的循环指令 格式:LOOPNZ TARGET/LOOPNE TARGET 功能:使CX–1,当CX≠0,且ZF=0时,则循环转移到目的地址TARGET去重复执行其间的程序段,若CX=0或ZF=1时,退出循环,顺序执行本指令的下条指令。 循环指令应用举例(1) 例:数据区Block内有100个有符号字节数据,将正(零归正数)、负数分开,并分别送到PLUSD和MINUSD两个缓冲区。 LEA SI,Block LEA DI,PLUSD LEA BX,MINUSD MOV CX,64H BEG:MOV AL,[SI] INC SI TEST AL,80H JNZ MINUS MOV [DI],AL INC DI JMP AGAIN MINUS:MOV [BX],AL INC BX AGAIN:LOOP BEG HLT ;Block首地址给SI ;PLUSD首地址给DI ;MINUSD首地址给BX ;循环次数给CX ;Block第一个数据给AL ;调整SI ;判断AL的符号位 ;负数,跳转到MINUS执行 ;正数,送给DI ;调整DI ;无条件跳转到AGAIN ;负数送给BX ;调整BX ;判断是否继续循环 ;停止执行 循环指令应用举例(2) 例 :找出以ARRAY为首地址的100个字节数组中第一个非零项,并将其置于AL 中,数组中若无非零项,则AL=0。 MOV CX,64H LEA BX,ARRAY MOV SI,0FFFFH ZERO:INC SI CMP BYTE PTR [BX+SI],0 LOOPZ ZERO JCXZ LI MOV AL,[BX+SI] JMP DONE LI:MOV AL,0 DONE:HLT 循环指令应用举例(3) 例: 计算以ARRAY1和ARRAY2为首地址的两个长度都为100个的字节数组对应项之和,并把结果送至首地址为SUM的数据区中,且当两个数组中间对应项的和为0时,停止求和。 MOV AX,0 MOV SI,0FFFFH MOV CX,64H NOZERO:INC SI MOV AL,ARRAY1 [SI] ADD AL,ARRAY2 [SI] MOV SUM [SI],AX LOOPNZ NOZERO HLT 循环指令注意事项 循环指令用在循环的尾部确

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档