- 155
- 0
- 约1.89万字
- 约 80页
- 2017-06-11 发布于湖北
- 举报
BEGIN: MOV AX,DSEG ;初始化数据段 MOV DS,AX MOV AX,SSEG ;初始化堆栈段 MOV SS,AX ; LEA BX,TABLE ;置数据指针 MOV AH,0 ; MOV AL,DATA ;取待查数 ADD BX,AX ;查表 MOV AL,[BX] ; MOV RESULT,AL ;平方数存RESULT单元 MOV AH,4CH INT 21H CSEG ENDS END BEGIN 4.4.2 顺序程序 4.4.3 分支程序 分支程序是利用条件转移指令,使程序执行到某一指令后,根据条件是否满足,来改变程序执行的顺序。 条件1 条件2 分支程序段2 分支程序段3 结束 是 否 否 分支程序段1 是 结束 [例4-13] 编写程序,将数据区中以字节变量BUFFER为首地址的100个单元清零。 程序段如下: DATA SEGMENT BUFFER DB 100 DUP(?) COUNT DB 100 DATA ENDS STACK SEGMENT DW 32 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK 4.4.3 分支程序 START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV CL,COUNT ;置单元长度 LEA BX,BUFFER AGAIN: MOV [BX],0 ;实现100个单元清零 INC BX CMP BX,COUNT JB AGAIN MOV AH,4CH INT 21H CODE ENDS END START 4.4.3 分支程序 [例4-14] 在当前数据段的DATA开始的顺序80个单元中,存放80位同学某门课程的考试成绩(0-100)。编写程序统计≥90分,80-89分,70-79分,60-69分以及60分的人数。并将结果放到同一数据段的DATA2开始的5个单元。 程序: DATA SEGMENT DATA1 DB 80 DUP(?) DATA2 DB 5 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,80 ;共统计80个学生的成绩 4.4.3 分支程序 LEA SI,DATA1 LEA DI,DATA2 AGAIN: MOV AL,[SI] CMP AL,90 ;大于90分吗? JC NEXT1 INC BYTE PTR[DI] ;90分以上的人数加1 JMP STO NEXT1: CMP AL,80 ;大于80分吗? JC NEXT2 INC BYTE PTR[DI+1] ;80分以上的人数加1 JMP STO 4.4.3 分支程序 NEXT2: CMP AL,70 ;大于70分吗? JC NEXT3 INC BYTE PTR[DI+2] ;70分以上的人数加1 JMP STO NEXT3: CMP AL,60 ;大于60分吗? JC NEXT4 INC BYTE PTR[DI+3] ;60分以上的人数加1 NEXT4: INC BYTE PTR[DI+4] ;60分以下的人数加1 STO: INC SI LOOP AGAIN 4.4.3 分支程序 CODE ENDS END START 循环体 循环初态 循环结束条件 4.4.4 循环程序设计 [例3-50] 统计以BUFFER为起始地址的100个单元中负数的个数,并将统计出来的负数个数送NUM单元。(P145) XOR BL,BL ;存放负数的个数 MOV CX,100 ;统计次数 LEA SI,BUFFER CLD NEXT: LODSB ;取一个数 TEST AL,80H JZ
您可能关注的文档
最近下载
- 运筹学题库及答案.doc VIP
- 2012江苏高考数学试卷(含答案).doc VIP
- 2018江苏高考数学.doc VIP
- 多因素身份验证系统设计与实现.docx VIP
- 新概念英语第一册上半册 Lesson15-16 课件.ppt VIP
- 2025 年剖宫产术后护理的最新要点与技巧.docx VIP
- 医院科室排班表.docx VIP
- 楼宇低压配电系统的设计.doc VIP
- 【电脑小知识】:如何使用注册表来恢复误删的Win7便签?.docx VIP
- 班子(在带头强化政治忠诚、提高政治能力;在带头固本培元、增强党性;在带头敬畏人民、敬畏组织、敬畏法纪;在带头干事创业、担当作为;在带头坚决扛起管党治党责任)存在不足.docx VIP
原创力文档

文档评论(0)