第5章MASM汇编语言设计.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 MASM汇编语言程序设计 一.??? 汇编语言程序设计的基本步骤和方法 一个好的程序具有如下特点: (1)满足用户提出的要求,实现其功能 (2)具有结构化设计,易调试修改。 (3)通用性强 (4)执行速度快 (5)占用内存空间少 程序的基本结构有: 顺序、分支和循环三种结构 汇编语言程序设计一般可以分为以下基本步骤: (1)分析问题 (2)算法设计 (3)画流程图 (4)编写源程序 (5)上机调试运行 1)分析问题 两个重点: (1)问题提出的要求 (2)组织好加工处理的数据 2)算法设计 算法是指解决问题的方法和步骤,按照算法步骤从第一步开始依次一步一步执行。可从同一问题需求得到多种算法。 3)画流程图 程序的流程图有四部分组成: (1)执行框(矩形框) 框中写明表示某一段程序或某一模块的功能,如下所示: (2)判别框 2个条件(Y或N)可使用菱形框,多条件使用尖角框。如下所示: (3) 开始框和结束框(矩形框) (4)指向线和连接圈 指向线: 连接圈: 4)编写源程序 根据流程图所示功能进一步细化,选择适当的指令语句来组成实现功能的源程序 5)上机调试运行 出错的问题: (1)语法错误 (2)逻辑错误 语句用错、算法用错和问题理解出错 举例: 编一程序查找200个考生中的最高分数。设考分值范围为0~100的整数。 (1)分析问题 根据题意,分值范围在0~100范围内,即可定义考生分数为无符号的字节,是200个考生,组成数组S。可以从题中抽取算法。 (2)算法设计 求最大数采用:若ASi(I=0~199),Si=A,A存放最大值 (3)画流程图 dat1 segment s DB 80,95,100,… cou1 DB 200 max1 DB ? dat1 ends cod1 segment assume cs:cod1,ds:dat1 stt:mov ax,dat1 mov ds,ax mov bx,0 mov cx,cou1 二.??? 顺序程序设计 从流程图来讲,其结构由一个开始框、若干个执行框和 一个结束框构成。 例1:把在变量V1和V2中的两个压缩型BCD码数相加, 结果 放在V3变量中。 例2:将一个数据表中的字符串‘ABCD’反序复制 到另一存储区中。 例3:在内存地址SQ起有0~15整数的平方数表。现在A单元任给一个整数(0~15),求其平方值。 例4:将一字节压缩型BCD码转换为二个ASCII码。 三.??? 分支程序设计 要掌握三点: (1)如何产生条件 (2)如何对条件进行判断 (3)如何实现分支 分支程序有:2分支和多分支 1、两分支程序的设计 例1:比较两个无符号数的大小。设A和B单元各有一个字节型无符号数,根据该两无符号数的大小,在屏幕上显示“AB”或“B=A”。 例2:在数据段的一个字符串中查找字符“$”,如找到,则将其所在单元的偏移地址存入字单元变量ADDR中,否则将零存入ADDR中。 例3:从键盘输入两个字符,如果第一个输入的是数字,第二个输入的是大写字母,则输出信息“right”后结束,否则,输出信息“ error”,然后转向出错重做。 四. 循环程序设计 循环程序一般有四部分组成: (1)置初始部分 (2)循环工作部分 (3)循环修改部分 (4)循环控制部分 循环程序有:单循环和多重循环 循环程序控制方法: (1)计数控制法 A、正计数法 B、倒计数法 (2)条件控制法 五.? 子程序设计 编写子程序完成后,必需对子程序注释说明, 以便程序设计人员更好的调用子程序, 要说明以下部分: (1)子程序的名称 (2)子程序的功能 (3)子程序的入口参数 (4)子程序的出口参数 (5)子程序所使用的寄存器及存储区 (6)子程序调用其它子程序的方式 子程序设计方法注意两点: (1)保护现场和恢复 (2)子程序参数传递方法 子程序设计步骤: (1)对所给问题进行分析,确定是否采用子程序结构 (2)确定子程序的入口参数和出口参数,并根据实际情况选择合适的参数传递方法 (3)确定子程序的名称和距离属性(NEAR和FAR) (4)确定子程序的算法,画出流程图 (5)根据子程序所占用的寄存器和存储单元的情况,确定

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档