- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 微型计算机的程序设计 6.1 程序设计步骤137 6.2 简单程序138 6.3 分支程序140 6.4 循环程序143 6.5 子程序146 6.6 查表程序150 习题 在了解和熟悉了86系列指令系统的基础上,本章将介绍程序设计的一般过程,以及几种典型的程序形成的编写方法。 6.1 程序设计步骤 程序是计算机命令(语句)的有序集合,当用计算机求解某些问题时需要编制程序。汇编语言程序设计归纳如下7个步骤: (1) 分析问题: 分析问题就是全面理解问题,要把解决问题所需条件、原始数据、输入和输出信息、运行速度要求、运算精度要求和结果形式等搞清楚。对较大问题的程序设计,一般还要用某种形式描绘一个“工艺”流程,以便于对整个问题的讨论和进行程序设计。“工艺”流程是指用表格、线条图、形象图或流程图等去描述问题或问题的物理过程。 (2) 建立数学模型: 在对问题全面理解后,需要建立数学模型,这是把问题向计算机处理方式转化的第1步骤。建立数学模型是把问题数学化、公式化,有些问题比较直观,可不去讨论数学模型问题;有些问题符合某些公式或某些数学模型,可以直接利用;但有些问题没有对应的数学模型可以利用,需要建立一些近似数学模型模拟问题,由于计算机的运算速度很快,所以运算精度可以很高,近似运算往往可以达到理想精度。 对初学者来说,主要是学习程序设计语法,复杂的数学模型可暂不去考虑。 (3) 确定算法: 建立数学模型后,许多情况下还不能直接进行程序设计,需要确定符合计算机运算的算法。计算机的算法比较灵活,一般要优选逻辑简单、运算速度快、精度高的算法用于程序设计;此外,还要考虑占用内存空间小、编程容易等特点。 算法可由计算机语言、日常生活语言、表格、自定义关系图或流程图等按计算机能够接受的方法进行描述,读者采用哪一种方式描述算法,有时还取决于习惯。 (4) 绘制程序流程图: 程序流程图是用箭头线段、框图及菱形图等绘制的一种图。用它能够把程序内容直接描述出来,因此,它在程序设计中应用很普遍。程序流程图如图6.1所示。 (5) 内存空间分配: 汇编语言的重要特点之一是能够直接用机器指令或伪指令为数据或代码程序分配内存空间,当然,在程序中没有指定分配存储空间时,系统会按约定方式分配存储空间。86系列存储器结构是分段的,如代码段、数据段、堆栈段或附加段,在程序设计时要考虑分段结构,要执行的程序段应设在当前段(活动段)中。 程序在运行时所需要的工作单元应尽可能设在CPU寄存器中,这样存取速度快,而且操作方便。 (6) 编制程序与静态检查: 编制程序就是按计算机语法规定书写计算机解决问题的过程。汇编语言编程应按指令系统和伪指令的语法规则进行,汇编语言符号虽然简单,但它的含意并不直观。初学者应多参照指令表或指令说明进行,以免给程序调试造成许多麻烦。 编制程序首先关心的还是程序结构,它应是模块化和通用子程序结构,程序的结构要层次简单、清楚、易读、易维护为好。若程序运行时还要伴随人机对话过程,还应考虑用户在应用时操作简便,并有相应的提示给用户一些指导。 静态检查是上机调试前的最后一步,只要细心,一般可以查出许多错误,这也就减少了程序调试时的许多麻烦。 6.2 简单程序 这种程序的形式最简单,计算机执行程序的方式是“从头到尾”,逐条执行指令语句,直到程序结束,这是程序的最基本形式,任何程序都离不开这种形式。 一般熟悉指令的读者,对于这类简单程序不用按上述7个步骤,而直接对给出的题目写出助记符程序清单。第5章讲述指令系统时所举的例子大多属于这种形式的程序。下面例子是为了熟悉上述程序设计步骤。 【例6.1】用数据运算指令,对两个16位数做加法运算。这两个数从地址10050H开始连续存放,低位在小地址一端,结果放在这两个数之后。 (1) 分析题目:它是一个16位数相加的问题。在用加法指令时,必须要考虑低8位和低8位相加后产生的进位问题。 (2) 根据86系列指令系统,可以直接对累加器AX做字操作,但在低位相加后,会影响标志寄存器的进位位CF,所以,要用带进位的加法指令。 (3) 绘制程序流程图,如图6.2所示。 (4) 内存空间分配:被加数、加数及和在内存的空间分配见表6.1所示(见书第139页)。 (5) 编制的程序如下: MOV AX,1000H MOV DS,AX ; DS=1000H MOV SI,50H ; 被加数指针SI=50H MOV DI,52H ; 加数指针DI=52H MOV BX,54H ; 和的指针BX=54H CLC ; 清CF XOR AX,AX ; 清AX MOV AX,[SI] ; 取一个字到AX ADC AX,[DI] ;
您可能关注的文档
最近下载
- 七年级上册语文第一单元重点内容整合练习含答案及解析.pdf
- 植物界 一、植物界的主要类群.ppt VIP
- 【36页PPT】CQI23模塑系统评估.pptx VIP
- 全科医生转岗培训模拟练习题附答案6.doc
- 2022-LY-022林地保护利用规划林地落界技术规程.pdf VIP
- (高清版)W-S-T 403-2024 临床化学检验常用项目分析质量标准.pdf VIP
- YYT1437-2023 医疗器械 GBT42062应用指南.pdf VIP
- 2025年全国导游资格证考试《全导+地导》真题卷(含答案).pdf VIP
- CBT 3000-2019 船舶生产企业生产条件基本要求及评价方法.docx VIP
- 交通事故案例分析.ppt VIP
文档评论(0)