- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]微机原理第5章 汇编语言程序设计
5.4.2 循环程序的控制方法 (1)计数法 计数法分为正计数法和倒计数法。 例5-7 编制程序将两个n字节的无符号数相加,结果存入SUM开始的n+1字节存储区中。 (1)明确任务,确定算法。 按字节相加,n字节共需n次。属于循环次数已知型,可以采用计数法。 (2)绘流程图(图5-18) (3)根据流程图编写汇编语言程序 DATA SEGMENT DATA1 DB N DUP(?) DATA2 DB N DUP(?) SUM DB N+1 DUP(?) DATA ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DATA START: MOV AX,DATA MOV DS,AX MOV BX,OFFWET DATA1 MOV SI,OFFSET DATA2 LEA DI,SUM MOV CX,N CLC AGAIN: MOV AL,[SI] ADC AL,[BX] MOV [DI],AL INC BX INC SI INC DI LOOP AGAIN ADC BYTE PTR [DI],0 MOV AH,4CH INT 21H CSEG ENDS END START (2)条件控制法 条件控制法——利用已知的条件对循环进行控制的方法。 分两种情况: 1)如循环最大次数已知,但有可能使用一些特征或条件使循环提前结束,可使用LOOPZ/LOOPE和LOOPNZ/LOOPNE指令。 2)循环次数未知,利用条件中的特征结束循环。 例5-8 编制程序用单字符输出的DOS功能调用向屏幕输出以“%”结束的字符串。 (1)明确任务,确定算法。 循环次数未知, 以“%”为结束的条件。 (2)绘流程图(图5-12) (3)根据流程图编写汇编语言程序 DSEG SEGMENT DATA DB ‘HOW ARE YOU?%’ DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA SI,DATA AGAIN: MOV DL,[SI] CMP DL,‘%’ JZ ENDOUT MOV AH,2 INT 21H INC SI JMP AGAIN ENDOUT: INT 20H CSEG ENDS END START (3)逻辑尺控制法 例5-9 设有16个内存单元需要修改,修改规律是:第1、3、6、9、12号单元均加5,其余单元均加10,试用循环结构编程实现。 (1)明确任务,确定算法。 (2)绘流程图 (3)根据流程图编写汇编语言程序 DATA SEGMENT XDA DB 16 DUP(?) LRULER DW 0A490H DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,0 MOV CX,10H
文档评论(0)