汇编语言——第4章 程序设计方法.docVIP

  • 4
  • 0
  • 约8.01千字
  • 约 18页
  • 2018-01-28 发布于河北
  • 举报
汇编语言——第4章 程序设计方法.doc

第4章 程序设计方法 4.1 概述 4.1.1 汇编语言程序设计的一般步骤 汇编语言程序设计一般有以下几个步骤: 1.分析问题, 确定算法 2. 绘制流程图 3. 根据流程图编制程 4. 分配存储器和寄存器 5.写源程序 6.调试程序 4.1.2 流程图 1.流程图的概念 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。 2.流程图符号表示 (1)起止框:表示程序的开始和结束。 (2)判断框 (3)处理框 (4)调用框 (5)指向线 (6)连接框 4.2 顺序程序设计 下面举例说明顺序程序的设计。 【例4.1】试编写一程序计算以下表达式的值。 w=(v-(x*y+z-540))/x 式中x、y、z、v均为有符号字数据。 设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中,程序的流程图如图4.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,540 SBB BX,0 ;(BX:CX)-540→(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 【例4.2】已知某班学生的英语成绩按学号(从1开始)从小到大的顺序排列在TAB表中,要查的学生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80,85,86,71,79,96 DB 83,56,32,66,78。84 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 DEL AL XLAT TAB MOV ENGLISH,AL MOV AH,4CH INT 21H CODE ENDS END BEGIN 分支程序设计 4.3.1 用条件转移指令实现程序分支 【例4.3】编写计算下面函数值的程序: 1 X>0 Y= 0 X=0 -1 X0 设输入数据为X、输出数据Y,且皆为字节变量。程序流程图如图4.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: JG A2 ;X>0转A2 MOV Y,0 ;X=0时,0→Y JMP EXIT A2: MOV Y,1 ;X>0,1→Y EXIT: MOV AH,4CH INT 21H CODE ENDS END START 【例4.4】试编一程序,求三个带符号字数据中的最大

文档评论(0)

1亿VIP精品文档

相关文档