《汇编语言课件》第1章 基础知识第5章 循环与分支程序设计.pptVIP

  • 5
  • 0
  • 约5.58千字
  • 约 49页
  • 2018-03-27 发布于江西
  • 举报

《汇编语言课件》第1章 基础知识第5章 循环与分支程序设计.ppt

第5章 循环与分支程序设计 5.1 概述 5.2 顺序程序设计 5.3 分支程序设计 5.4 循环程序设计 5.1 概述 5.1.1 汇编语言程序设计的一般步骤 5.1.2 流程图 5.1.1 汇编语言程序设计的一般步骤 汇编语言程序设计一般有以下几个步骤: 1.分析问题,确定算法 2.绘制流程图 3.根据流程图编制程序 5.调试程序 5.1.2 流程图 1.流程图的概念 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。 (2)判断框 (5)指向线 5.2 顺序程序设计 下面举例说明顺序程序的设计。 【例5.1】试编写一程序计算以下表达式的值。 w=(v-(x*y+z-550))/x    式中x、y、z、v均为有符号字数据。 设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中,程序的流程图如图5.1所示。 源程序如下: DATA SEGMENT X DW 200 Y DW 100 Z DW 3000 V DW 10000 W DW 2 DUP(?) DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK START: MOV AX,DATA MOV DS,AX ;DATA→AX MOV AX,X IMUL Y ;(X)*(Y)→DX:AX MOV CX,AX MOV BX,DX ;(DX:AX)→(BX:CX) MOV AX,Z CWD ;(Z)符号扩展 ADD CX,AX ADC BX,DX ;(BX:CX)+(DX:AX)→(BX:CX) SUB CX,550 SBB BX,0 ;(BX:CX)-550→(BX:CX) MOV AX,V CWD ;(V)符号扩展 SUB AX,CX SBB DX,BX ;(DX:AX)-(BX:CX)→(DX:AX) IDIV X ;(DX:AX)/X MOV W,AX ;商→W MOV W+2,DX ;余数DX→W+2 MOV AH,4ch INT 21H CODE ENDS ;退出DOS 状态 END START 【例5.2】 【例5.2】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80,85,85,71,79,95 DB 83,55,32,55,78。85 NO DB 10 ENGLIST DB? DATA ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE BEGIN: MOV AX,DATA MOV DS ,AX LEA BX,TAB MOV AL,NO DEC AL XLAT TAB MOV ENGLISH,AL MOV AH,4ch INT 21H CODE ENDS END BEGIN 5.3 分支程序设计 5.3.1 用条件转移指令实现程序分支 5.3.2 用跳转表实现多路分支 5.3.1 用条件转移指令实现程序分支 【例5.3】编写计算下面函数值的程序: 1 X>0 Y= 0 X=0 -1 X0 设输入数据为X、输出数据Y,且皆为字节变量。程序流程图如图5.2所示。 程序如下: DATA SEGMENT X DB -10 Y DB ? DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX CMP X,0 ;与0进行比较 JGE A1 ;X≥0转A1 MOV Y,-1 ;X <0时,-1→Y JMP EXIT A1:

文档评论(0)

1亿VIP精品文档

相关文档