微型计算机技术与汇编语言程序设计:ch09-分支与循环程序设计.docx
《微型计算机技术与汇编语言程序设计:ch09-分支与循环程序设计.docx》由会员分享,可在线阅读,更多相关《微型计算机技术与汇编语言程序设计:ch09-分支与循环程序设计.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章分支与循环程序设计5.1.概述设计步骤:描述问题分确定算法令绘制流程图今分配存储空间和工作单元少编写程序 分上机调试5. 2.分支程序设计分支程序结构二路分支结构多路分支结构522二路分支程序设计方法例 1(x 0)y =0(% = 0)-1(x0)-128xl27DATASEGMENTXXI DB 10;X二给定一个值YY1 DB ?;YDATAENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMOV DS, AXLEA, BX, NUMBER1MOV CX, 65AA1: MOVMOV INT INC LOOPDL, BXAH, 2 21H BX AA1M
2、OV AH,4CHINT21HCODE ENDSEND START例在CRT上显示16位十进制数8988998899989899DATADATASEGMENT;(逻辑尺法)ENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS, AXAA1:AA2:MOVMOV MOVSHL JNC INC MOVINT LOOPBX, RULERICX, 16DL, 38HBX, 1AA2DL ; MOV DL, 39HAH, 221HAA1MOV AH,4CHINT21HCODEENDSEND START534多重循环例535用逻辑尺法,
3、在CRT上显示“中”空格一0表示41表示000100001 OhlllllllOOFeh1001001092h1001001092hlllllllOOFeh000100001 Oh000100001 OhDATA SEGMENTRULERI DB lOh, OFeh, 92h, 92h, OFeh, 10h, lOhDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS, AXLEAMOVAA1: MOVMOVMOVINTMOVMOVINTSI, RULERICX, 7;外循环计数次数DH,8 ;内循环计数次数D
4、L, 0AHAH, 221HDL, 0DHAH, 221HMOVAA2: MOVSHLJNCBL, SIDL, 20HBL, 1AA3ADDAA3: MOVINTDL, 21HAH, 2 21H;MOV DL,41H; ADEC DHJNZ AA2 ;内循环控制MOV DL, 0AHMOV AH, 2INT 21HMOV DL, ODHMOV AH, 2INT 21HINC SILOOP AA1 ;外循环控制MOV AH,4cHINT21HCODE ENDSEND START例五个学生参加4门课的考试,成绩以压缩BCB码方式存放在COURSE1 数组中,计算每个学生的总分。DATA SEGME
5、NTCOURSE 1 DB 70H, 88H, 92H, 90H, 99H;第一门课成绩NUM1DATA ENDSDB 67H, 77H, 88H, 76H, 69HDB 74H, 87H, 77H, 74H, 70H;第二门课成绩;第三门课成绩DB 99H, 97H, 94H, 98H, 96H ;第四门课成绩DW 5 DUP(O) ;5个学生的总成绩结果单元CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS, AXLEA SI, COURSEILEA DI, NUM1MOV CL, 5;外循环计数次数AA1: MOV BX
6、, SIMOV AX, 0MOV CH, 4;放累加结果;内循环计数次数A42: ADD ALf BXDAAADC AH, 0ADD BX, 5DEC CHJNZ AA2;内循环控制MOV DI, AX ;存一个学生的总分成绩INC SIADD DI, 2DEC CLJNZ AA1 ;外循环控制MOV AH,4cHINT21HCODE ENDSEND START例键入39间的数字,输出一个用“* 组成的三角形。例如键入5,输出如下:* * * * * *大 *火*CODE SEGMENTASSUME CS:CODESTART: MOV AH JINT 21HCMP AL, 33HJC STAR
7、T; JB startCMP AL,3AHJNC START ;界限为 39 JAE startAND AL, OFHMOV BL, AL;保存键入的值,作为外循环的次数MOV BH, 1;内循环次数,它是可变的,但不大于BLAA1: MOVAA1: MOVDL, 0AHMOV AH, 2INT 21HMOV DL, ODHMOV AH, 2INT 21HMOV CL, BHAA2:MOV DL, MOV AH, 2INT 21HDEC CLJNZAA2 ;内循环控制,显示一行的k:个数由BH定INC BHCMP BL, BHJNC AA1 ;外循环控制 JBE AA1MOV AH,4CHIN
8、T21HCODE ENDSEND START例 冒泡法排序算法:图大1 2 34卬小 N1)(N1)*(N1)次比较法第一次内循环比较N-1次,第二次循环比较N-1次,最后一次(N-1次)循 环比较N-1次。DATA SEGMENTNUMBER 1 DB 100,3,90,80,99,77,44,66,50N_1 EQU $-NUMBERl -1DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOVMOVAX, DATADS, AXMOV DX, N_1 ;外循环计数次数AA1:AA1:LEAMOVBX, NUMBER 1CX, N_1;内
9、循环计数次数AA2:MOV AL, BXCMP AL, BX+1JNC AA3 ;JGE AA3XCHG AL, BX+1MOV BX,AL ;交换A A3: INC BXLOOP AA2DEC DXJNZ AA1MOV AH, 4CHINT21HCODE ENDSEND STARTS2) (N-D!次比较法第一次内循环比较N-l次,第二次循环比较N-2次,最后一次(N-1次)循 环比较1次。DATA SEGMENTNUMBER 1 DB 100,3,90,80,99,77,44,66,50N_1 EQU $-NUMBERl -1DATA ENDSCODE SEGMENTASSUME CS:C
10、ODE, DS:DATASTART: MOVMOVAX, DATADS, AXMOV DX, N_1 ;外循环计数次数AA1:LEA BX, NUMBER 1MOV CX, DX ; *内循环计数次数NJ, N-2,1AA2:MOV AL JBXCMP AL, BX+1JNC AA3 ;JGEAA3A A3:XCHG AL, BX+1MOV BX,AL ;交换INC BXLOOP AA2DEC DXJNZ AA1MOV AH, 4CHINT21HCODE ENDSEND STARTS3)(N1)(N2)(Nm)次比较法第一次内循环比较N-l次,第二次循环比较N-2次,最后一次(m次)循环 比较
11、N-m次(此次比较时无交换,排序结束)。内循环有交换标志AH=1,无交换标志AH=0,若内循环一次无交换,则排序完成。DATA SEGMENTNUMBER 1 DB 100,3,90,80,99,77,44,66,50N_1 EQU $-NUMBERl -1DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOVMOVAX, DATADS, AXMOV DX, N_1 ;外循环计数次数AA1:LEA BX, NUMBER 1MOV AH, 0;标志清零MOV CX, DX; *内循环计数次数N-l, N-2AA2:AA2:AA3:MOV CM
12、P JNC XCHG MOV MOV INC LOOPAL, BX AL, BX+1 AA3 ALJBX+1 BX,AL AH, 1 BX AA2;JGE AA3;交换;表示有交换ORJZAH, AHAA4;AH=0,表示无新交换,排序结束,;SHR AH, 1; JNC AA4DEC DXJNZ AA1AA4: MOV AH, 4CHINT21HCODE ENDSEND STARTS考试题:P200 5.4, 5.2, 5.81 .试编写从键盘上接收一个4位的16进制数,并在CRT上显示出与它等值的二 进制数的源程序。START:AA2:MOVAX, DSMOVDS, AXMOVAL,XXI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 汇编语言 程序设计 ch09 分支 循环
限制150内