版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 宏指令的 宏指令的格式为: MACRO 形参表 ENDM 上面宏定义中,X、Y、Z是形式参数。 调用宏DADD时可写为: DADD DATA1,DATA2,SUM 上面宏调用中,DATA1,DATA2,SUM是实际参数,由它们替换定义中的X、Y、Z,即形实结合。CALL RETCALL CALL 相同=或主程序+过程(子程序)主程序+宏定义宏扩展宏调用 与 过程(子程序)调用 异同点示意图 宏调用 与 过程(子程序)调用 异同点相同点: 都是一次定义,多次调用。不同点: 执行形式:宏命令伪指令由宏汇编程序在汇编过理中进行处理;而CALL、RET则是由CPU执行的指令。 汇编结果:宏命令伪指令
2、汇编后被展开。 执行速度:宏命令执行速度较快(因无调用转移) 占用内存:宏指令简化了源程序,但不能简化目标程序,并不节省内存单元; 使用过程可以节省代码(源程序和目标程序)占用的内存空间。 汇编语言的一个实例: EXAM.ASM 列表为指令 TITLE SUBTTL PAGE连接伪指令 PUBLIC EXTRN INCLUDE GROUP等等其它伪指令: DOS系统功能调用都是用软中断指令INT 21H来实现的。它具有90多个子功能的中断服务程序,它们通过功能号AH来区分。它不依赖于具体的硬件系统。内存管理、存取时间、存取终端矢量、终止程序等。(预留的N1个字节的存储单元) 0DHN2N1 N
3、1: 缓冲区长度(最大键入字符数) N2: 实际键入的字符数(不包括回车符) 用户定义的输入字符串的缓冲区格式 定义:基本输入输出系统,是固化在EPROM中的一组实现基本输入输出功能的子程序。功能: 系统测试程序、初始化引导程序、一部分中断矢量装入程序及外部设备的服务程序等。BIOS与系统硬件有直接的依赖关系。调用方法:BIOS调用通过多个软中断提供,具体的调用方法为: BIOS中的几个主要中断类型如下:INT 10H屏幕显示INT 13H磁盘操作INT 14H串行口操作INT 16H键盘操作INT 17H打印机操作 每类中断由包含许多子功能,调用时通过功能号指定。BIOS功能调用说明见p41
4、6附录D。 BIOS中断程序处于DOS功能调用和硬件环境之间,和DOS功能调用相比其优点是效率高,缺点是编程相对复杂;和直接对硬件编程相比,优点是实现相对容易,缺点是效率相对较低。 在一些情况下既能选择DOS中断也能选择BIOS中断来执行同样的功能。例如,打印机输出一个字符的功能,可用DOS中断21H的功能5,也可用BIOS中断17H的功能0。因为BIOS比DOS更靠近硬件。一般情况下,尽可能地使用DOS功能,但在少数情况下必须使用BIOS功能。例如,BIOS中断17H的功能2为读打印机状态,DOS就没有等效的功能。 因此,对BIOS和DOS调用的选择原则是,无法使用DOS功能调用或DOS没有
5、提供而BIOS提供了功能的情况下可以考虑使用BIOS中断。BIOS中断调用与DOS功能调用的比较 如何绘制程序框图(流程图)?NY?框中标明子程序名字(入口参数等) 。 流程图的例子FlowChart.docYYYNNN有错 ?有错 ?有错 ?结束汇 编输入(修改)源程序连 接运 行查 错开始用EDIT,NOTEPAD等任何文本编辑器。源程序存为.ASM文件 用MASM宏汇编程序进行汇编。汇编后生成.OBJ目标文件。命令格式:MASM ; 用LINK连接程序进行连接。连接后生成.EXE可执行文件。命令格式:LINK ; 用TD、DEBUG等调试程序进行调试。命令格式:TD 标号:条 件 满足?
6、处理NYIFTHEN结构程序结构: 测试/比较指令 (TEST/CMP) 条件转移指令 (Jx 标号) 处理体 标号: 其他指令 程序结构: TEST/CMP指令 Jx 标号1 处理体P1 JMP 标号2标号1: 处理体P2标号2:其他指令 条 件 满足?处理P1处理P2标号1:标号2:条件1条件2IFTHENELSE结构标号1:条 件 1成立?P1NYCASE结构程序结构: TEST/CMP指令(测试条件1) Jx 标号1 ;不满足转标号1 处理体P1 JMP 标号n+1标号1:TEST/CMP指令(测试条件2) Jx 标号2 ;不满足转标号2 处理体P2 JMP 标号n+1标号2:TEST
7、/CMP指令(测试条件3) Jx 标号3 ;不满足转标号3 处理体P3 JMP 标号n+1标号3:TEST/CMP指令(测试条件4) 标号n+1:(公共出口)条 件 2成立?条 件 n成立?Pn+1标号2:标号n:标号n+1:P2PnNNYY例:P178,例4-14,统计成绩。流程图中虚线框内初始化循环体循环控制继续循环?YN初始化循环体循环控制继续循环?YNBSORT.ASM掌握以下几点: 调用子程序用CALL指令,返回调用程序用RET指令。 子程序允许嵌套调用。 进入子程序后首先要保护主程序的运行状态(标志位)和使用的寄存器内容(称为保护现场),退出子程序前要恢复现场。 调用前要预先确定子程序中要使用哪些寄存器,并定义入口参数和出口参数。参数传递可利用寄存器、存储单元或堆栈(要用BP寻址)。例1: 二进制数(0-F)转换成ASCII(0-F)的子程序。BIN2ASC PROC ;要转换的数在AL的低四位 ;转换结果仍在AL中 CMP AL, 9 JA A2F ADD AL, 30H; 9, +37H DONE: RETBIN2ASC ENDP调用方法:(在主程序中) MOV AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工应急管理协议书
- 零售行业劳动合同管理政策
- 2024年度江西省国家保安员资格考试典型题汇编及答案
- 施工安全责任协议书范文
- 保险学课件-保险监管
- 《医院经营分析》课件
- 【大学课件】国际贸易课程框架
- 《心肺复苏术必修》课件
- 教师培训课件:普通高中课程改革高中语文课程标准
- 庖丁解牛课件
- CF5061GXJYNKR管线加油车使用说明书-
- (51)-春季助长小儿推拿探秘
- 反恐认证全套文件表格优质资料
- 住院医师规范化培训临床实践能力结业考核基本技能操作评分表(气管插管术)
- 2023年成都温江兴蓉西城市运营集团有限公司招聘笔试模拟试题及答案解析
- 学生伤害事故处理办法及案例课件
- 工艺竖井开挖支护施工技术方案(清楚明了)
- 初中《合唱》校本课程
- 一元一次含参不等式教学设计83
- 100道凑十法练习习题(含答案)
- 牛仔面料成本核算
评论
0/150
提交评论