- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 子程序设计和系统调 用
第九章 子程序结构与设计;第一节 常用DOS功能调用;二、常用的输入/输出系统功能调用;2.显示输出(2号调用)
格式:MOV DL,待显示字符的ASCII码
MOV AH,2
INT 21H
功能:将DL中的字符送显示器显示.;将DL中存放的数显示,DL为0-15
ADD DL,30H ;DL加30H,转换为ASCII码
CMP DL,3AH ;数字大于9吗?
JL DISP ;不,则在0到9之间
ADD DL,7H ;大于9,为A到F,则加上7
DISP: MOV AH,2 ;显示十六进制数
INT 21H
;3.显示字符串(9号调用)
格式:LEA DX,待显示字符串首偏移地址
功能:将当前数据区DS:DX所指向的以‘$’结尾的字符串送显示器显示;DATA SEGMENT
BUF DB 0AH,0DH,’I wish you success! $’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA MOV AH,4CH
MOV DS,AX INT 21H
LEA DX,BUF CODE ENDS
MOV AH,9 END START
INT 21H;4.键盘输入字符串(10号调用)
格式:LEA DX,缓冲区首偏移地址
MOV AH,10
INT 21H
功能:从键盘上往DS:DX所指的输入缓冲区输入字符串并送显示器输入.;说明:缓冲区的第一字节保存最大字符数(由用户程序给出);第二个字节是实际输入的字符的个数,这个数据由功能0AH填入(不是由用户填入),在这两个字节之后,字符串就按字节存入缓冲区,最后结束字符串的回车符ODH还要占用一个字节,因此整个缓冲区的字节空间应为最大字符数(包括回车符)加2.;例:在数据区定义的字符缓冲区如下:
MAXLEN DB 32
ACTLEN DB ?
STRING DB 32 DUP(?)
输入字符串的指令如下:
LEA DX,MAXLEN ;指向缓冲区首址
MOV AX,0AH
INT 21H;如果输入字符串:
You are welcome!↙
此时缓冲区的存储如下:;第二节 子程序的基本格式和有关指令;过程类型属性的定义:
1)调用程序和过程在同一个代码段中则使用
NEAR属性。
2)调用程序和过程不在同一个代码段中则使用
FAR属性。;2.子程序的调用和返回
(1)调用--CALL(近调用和远调用)
格式: [标号:] CALL 子程序名
功能: P134
(2)返回--RET(近返回和远返回)
格式: [标号:] RET [返回值]
功能: P134
;例1. 调用程序和子程序在同一代码段中;;例2. 调用程序和子程序不在同一代码段中.;注:
(1)主程序看成DOS的一个子过程,故用FAR属性
(2)子程序的调用和返回已包括了返回地址的出、入栈,故在子程序中必须正确使用堆栈,否则将造成运行错误。;3.保护和恢复寄存器;哪些寄存器该保存?
该保存:一般子程序中用到的寄存器应保存。
不该保存:如果使用的寄存器是用来在主程序与子程序之间传送参数或回送结果,则不该保存.;如何保护与恢复现场?
1、在调用程序中保护现场和恢复现场;
; 2、在子程序中保护现场与恢复现场;常用; 3、保护与恢复现场的简便的方法;;第三节 子程序参数传递方式;2.约定存储单元法
在内存中使用一个存储区来保存和传递主﹑子程序间的参数。主程序在调用前将所有输入参数按约定的次序存入该存储区,进入子程序后按约定从存储区中取出输入参数进行处理,输出参数也按约定的次序存入指定存储区。;3.通过堆栈传递参数或参数地址
此方法是参数不占用寄存器,也无需另开辟存储单元,而是存放在公用的堆栈区,处理完后堆栈恢复原状。但存取参数时必须小心计算它在栈中的位置。;第四节 程序的递归和嵌套;二、子程序递归(了解);SUB1 PROC
….
CALL SUB1
….
RET
SUB1 ENDP;SUB1 PROC
….
CALL SUB2
….
SUB1 ENDP
….
SUB2 PROC
…..
CALL SUB1
您可能关注的文档
- 第一节 DEBUG主要用途和DEBUG调用.doc
- 口腔医学_中英文对照_常用词汇.docx
- 第一章 信号和其描述练习作业答案.ppt
- 第7章 间歇运动机构和其设计.ppt
- 第一节保险合同特征和种类.doc
- 第一节 北京市城市特征和建设成就(含答案).doc
- 第5章_液压缸结构和原理.ppt
- 第一章 跨国公司定义、特征和跨国经营演进.ppt
- 第七周 GSM练习和答案.doc
- 第一部分专题一 物质组成、分类和化学用语.ppt
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 2019电工电子类教学实践耗材需求明细表.DOC
- My Life in China and America [容闳自传:我在中国和美国的生活].pdf
- 常熟银行研究报告:回归小微初心,乘风乡村振兴.doc VIP
- 浙商证券-宠物行业从乖宝宠物看宠物赛道:陪伴需求催化宠物新蓝海,食品赛道频现龙头.pdf
- ctgd-sop v5风口安装作业指导书.pdf VIP
- 消化道出血有关试题附有答案.docx VIP
- 湘教版美术《家乡的古建筑》说课稿.doc
- 上海地区不同垂直骨面型成人临床冠中心高度的比较研究.pdf VIP
- 2023年 AMC 10B 数学竞赛(原卷+答案).doc VIP
- 世界贸易组织.ppt VIP
文档评论(0)