微机原理与接口技术 第4章 测控幻灯片.ppt

微机原理与接口技术 第4章 测控幻灯片.ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§4-3-3 汇编语言程序设计——循环结构设计 例6 AX寄存器中有一个16位二进制数,编程统计其中1的个数,结果放到CL寄存器。 解:相应程序如下 MOV CL, 0 ;初始化 L1: AND AX, AX ;控制循环 JZ STOP SAL AX, 1 ;循环体 JNC L2 INC CL L2: JMP L1 STOP: HLT 示例: AX = 123A H = 0001 0010 0011 1010 B CL = ; 06 H 2.多重循环: 多重循环设计方法应注意: ⑴初始控制条件。 ⑵循环可以嵌套,并列,但不能交叉。可以从内循环跳到外循环,不可以从外循环中直接跳进内层循环。 ⑶防止死循环。 §4-3-3 汇编语言程序设计——循环结构设计 例7 存储器数据段从BUF开始存放一个字数组,数组中第一个字中存放该数组的长度N,编制一个程序使此数组中的数据按照从小到大的次序排列。 解:采用冒泡排序算法。 从第一个数据开始相邻的数进行比较,若次序不对,两数交换位置。第一遍比较(N—1)次后,最大的数已到了数组尾。 第二遍仅需比较(N一2)次。 共比较(N-1)遍就完成了排序,于是共有两重循环。 程序流程图如下。 §4-3-3 汇编语言程序设计——循环结构设计 §4-3-3 汇编语言程序设计——循环结构设计 ADATA SEGMENT BUF DW N,15,37,8600,A768H,3412H,1256H,76H ADATA ENDS ASTACK SEGMENT STACK ‘STACK’ SA DB 100 DUP(?) TOP LABEL WORD ASTACK ENDS ACODE SEGMENT MAIN PROC FAR ASSUME CS:ACODE, DS:ADATA, SS:ASTACK START: MOV AX, ASTACK MOV SS, AX MOV SP, OFFSET TOP PUSH DS SUB AX, AX PUSH AX MOV AX , ADTAT MOV DS, AX §4-3-3 汇编语言程序设计——循环结构设计 MOV BX, 0 MOV CX, BUF[BX] ;设计数器CX,内循环次数 DEC CX L1: MOV DX, CX ;设计数器DX,外循环次数 L2: ADD BX, 2 MOV AX, BUF[BX] ;取BUF[I]与BUF[I+2] CMP AX, BUF [BX+2] ;若BUF[I]=BUF[I+2]转 JBE CONT1 XCHG AX, BUF[BX+2] ; 否则两数交换 MOV BUF[BX], AX CONT1: LOOP L2 ;内循环 MOV CX, DX ;外循环次数→CX MOV BX, 0 ;地址返回第一个数据 LOOP L1 ;外循环 RET MAIN ENDP ACODE ENDS END START §4-3-3 汇编语言程序设计——循环结构设计 例8 排序可采用另一种算法,用设置标志的方法排序。当排序已完成,即没有数进行交换时,可以结束外循环,不必循环N—l遍,节省了操作时间。

文档评论(0)

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

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

1亿VIP精品文档

相关文档