网站大量收购闲置独家精品文档,联系QQ:2885784924

程序设计的其他方法和技术.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.字符串操作 2.宏功能程序设计 3.模块化程序设计 5.1.2 串操作指令 5.1.2 串操作指令 5.1.2 串操作指令 5.1.2 串操作指令 5.1.1 串操作指令简介(总结) 5.2.6 宏库的使用 二、宏库的使用 当程序中需要调用时,首先将宏库加入自己的源文件,然后按宏库中各宏定义的规定调用。 语句格式:INCLUDE 文本文件名 功能:将指定的文本文件从本行起加入汇编,直到该文本的最后一行汇编完后,再继续汇编INCLUDE后面的语句。 5.2.6 宏库的使用 二、宏库的使用 示例:从键盘输入一串字符到BUF缓冲区,将其中的小写字母转换成大写字母(其余字符不变)后仍在显示器上输出。 实现方案:利用MACRO.LIB中的宏定义READ、OUT1、CRLF实现字符串的输入、显示一个字符、输出回车换行。 READ MACRO A LEA DX,A MOV AH,10 INT 21H ENDM CRLF MACRO MOV AH,2 MOV DL,0AH INT 21H MOV DL,0DH INT 21H ENDM OUTCH MACRO A MOV DL,A MOV AH,2 INT 21H ENDM STACKM MACRO A STACK SEGMENT STACK DB A STACK ENDS ENDM 文件MACRO.LIB中的宏定义: INCLUDE MACRO.LIB DATA SEGMENT BUF DB 79 DB 0 DB 80 DUP(0) DATA ENDS STACKM 200 DUP(0) CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX READ BUF LEA SI,BUF+2 MOV CL,BUF+1 MOV CH,0 CLD CRLF Y1: LODSB CMP AL,a JB Y2 CMP AL,z JA Y2 SUB AL,20H Y2: OUTCH AL LOOP Y1 CRLF MOV AH,4CH INT 21H CODE ENDS END START 利用宏定义实现题目要求的功能: 5.2.7 宏指令与子程序的比较 处理时间不同: 宏指令在汇编期间由宏汇编程序处理,子程序调用是在目标程序执行期间由CPU直接执行。 处理方式不同: 宏指令必须先定义、后调用,宏调用是用宏体置换宏指令名,实参置换形参,汇编结束,宏定义也随之消失。子程序调用不发生代码和参数的置换。 目标程序的长度不同: 宏指令导致目标程序长,占用空间大;而子程序无论调用多少次,子程序的目标代码仅出现一次,因此目标程序短,占用存储空间小。 5.2.7 宏指令与子程序的比较 执行速度不同: 调用子程序需要使用堆栈保护和恢复现场,需要专门的指令传递参数,因此执行速度慢;宏指令不存在这些问题,因此执行速度快。 参数传递方式不同: 宏调用可实现参数的置换,参数的形式不受限制,简单、方便、灵活,不容易出错;而子程序的参数一般为地址或操作数,传递方式由用户编程时具体安排,参数较多时容易出错。 5.3 模块化程序设计 对大型的复杂问题,如果将整个程序放在一个模块中实现会存在以下问题: 无法进行多人合作共同完成任务; 影响编程的效率和质量,难以保证程序的可靠性; 程序调试困难; 调试过程中需要多次汇编,源程序越长,汇编的速度越慢,浪费时间。 5.3 模块化程序设计 正确地解决大型、复杂问题的方法: 采用自顶向下、逐步求精的模块化和结构化的设计方法,将一个任务按其需要实现的主要功能分解为若干相对独立的模块,并确定好各模块之间的调用关系和参数传递方式,对其中的公共部分还可以抽出来作为独立的公用子程序模块供大家调用,然后将这些模块分配给各个开发人员,分别编写、调试,最后再将它们的目标模块连接装配成一个完整的系统。 5.3 模块化程序设计 模块划分与设计的参考规则: 如果一个程序段被多个模块公用,则它应是一个独立的模块; 如果若干个程序段处理的数据是公用的,则这些程序应放在一个模块中; 若两个程序段的租用率差别很大,则应分属于两个模块; 模块的规模要适当,既不能过大、也不能过小; 5.3 模块化程序设计 模块划分与设计的参考规则: 应力求使模块具有通用性; 各模块应在功能、逻辑上相互独立,避免用转移语句在模块间转移; 各模块间的接口应该简单,要尽量减少公共符号的个数,尽量不共用数据存储单元; 每个模块的结构应尽量设计成单入口、单出口的形式。 5.3 模块化程序设计 汇编语言程序设计中使模块化程序设计成为可能的关键——可重定位技术和连接

文档评论(0)

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

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

1亿VIP精品文档

相关文档