- 1、本文档共101页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 程序设计方法 4.1 概述 4.2 顺序程序设计 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计 4.6 模块化程序设计 4.7 高级汇编语言技术 4.1 概述 4.1.1 汇编语言程序设计的一般步骤 4.1.2 流程图 4.1.1 汇编语言程序设计的一般步骤 汇编语言程序设计一般有以下几个步骤: 1.分析问题,确定算法 2.绘制流程图 3.根据流程图编制程序 4.调试程序 4.1.2 流程图 1.流程图的概念 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。 (2)判断框 (5)指向线 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】 【例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 分支程序设计 4.3.1 用条件转移指令实现程序分支 4.3.2 用跳转表实现多路分支 4.3.1 用条件转移指令实现程序分支 【例4.3】编写计算下面函数值的程序: 1 X>0 Y= 0 X=0 -1 X 设输入数据为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
文档评论(0)