安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第七章 高级汇编语言技术(主讲:李敬兆)

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 第7章高级汇编语言技术 ch7
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章 ch7 1 第7章 高级汇编语言技术

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 71宏汇编 什么是宏? 宏(或宏指令)是源程序中一段有独立功能 的程序代码,只需定义一次,可以多次调用。 为什么使用宏汇编? 在编制汇编语言程序过程中,有些功能程序段需要 多次重复使用,所不同的只是参与操作的操作数。 为了减少编程的工作量,通常采用两种方法 ①将程序段编写为独立的子程序 ②将程序段定义成宏 大家想一下子程序有什么优缺点? ch7 2
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章 ch7 2 7.1 宏汇编 为什么使用宏汇编? 在编制汇编语言程序过程中,有些功能程序段需要 多次重复使用,所不同的只是参与操作的操作数。 为了减少编程的工作量,通常采用两种方法: ①将程序段编写为独立的子程序 ②将程序段定义成宏 大家想一下 子程序有什么优缺点? •什么是宏? 宏(或宏指令)是源程序中一段有独立功能 的程序代码,只需定义一次,可以多次调用。 第7章

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 711宏定义、宏调用和宏展开 1宏定义 用伪指令 MACROZENDM实现,其语句格式是: 宏指令名 MACRO[形参1,形参2,…,形参 宏定义体 ENDM ch7
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章 ch7 3 1.宏定义 用伪指令MACRO/ENDM实现,其语句格式是: 宏指令名 MACRO [形参1,形参2,…,形参n] ┇ 宏定义体 ENDM 7.1.1 宏定义、宏调用和宏展开

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 说明 宏指令名是该宏定义的名称。调用时使用宏指令名 对该宏定义进行调用。 宏指令符合标识符规定。宏指令名不能重复,并且 指令的第一个字符必须是字母。但可以和源程序中的 其他变量、标号、指令、伪指令名相同,在这种情况 下宏指令的优先级最高。 MACRO必须与ENDM成对出现。 MACRO标识宏 定义的开始。 形式参数(即形参,也称哑元、虚参)是可选项 宏可以不带参数;带参数时,多个形参间用逗号分隔
说明 • 宏指令名是该宏定义的名称。调用时使用宏指令名 对该宏定义进行调用。 • 宏指令符合标识符规定。宏指令名不能重复,并且 指令的第一个字符必须是字母。但可以和源程序中的 其他变量、标号、指令、伪指令名相同,在这种情况 下宏指令的优先级最高。 • MACRO必须与ENDM成对出现。MACRO标识宏 定义的开始 。 • 形式参数(即形参,也称哑元、虚参)是可选项, 宏可以不带参数;带参数时,多个形参间用逗号分隔。 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 2宏调用 宏调用的格式为 宏指令名[实参1,实参2,…,实参n 说明:实参可以是常数、寄存器、存储单元、地 址表达式、指令的操作码或者是操作码的一部分。 3.宏展开 宏展开就是宏定义体取代源程序中的宏指 令名,而且用实元取代哑元。汇编源程序时, 宏汇编程序将对每条宏指令语句进行宏展开, 用实参替代相应的形参,对宏体目标代码作相 应改变
2.宏调用 宏调用的格式为: 宏指令名 [实参1,实参2,…,实参n] 3. 宏展开 宏展开就是宏定义体取代源程序中的宏指 令名,而且用实元取代哑元。汇编源程序时, 宏汇编程序将对每条宏指令语句进行宏展开, 用实参替代相应的形参,对宏体目标代码作相 应改变。 说明:实参可以是常数、寄存器、存储单元、地 址表达式、指令的操作码或者是操作码的一部分。 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工大骨计算机科学与技术系李兆 《汇编语言》第7章 子程序调用和宏调用的工作方式 主程序 主程序 主程序 展开 Q A B Call Q 子程序Q QCD Q QE,F Call Q RET Q MACRO X,Y Call Q ENDM
Call Q Call Q Call Q Q: RET 子程序Q Q A,B Q C,D Q E,F Q MACRO X,Y ENDM 主程序 主程序 主程序 展开 子程序调用和宏调用的工作方式 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 用一个例子来说明宏定义、宏调用和宏展开的情况 例:将两个16位数相加,结果存入16位 RESULT单 元中。 对两数相加功能进行宏定义
用一个例子来说明宏定义、宏调用和宏展开的情况 例:将两个16位数相加,结果存入16位 RESULT 单 元中 。 ;对两数相加功能进行宏定义 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 BCDADD MACRO VARX, VARY, RESULT MOV AL, VARX ADD AL, VARY MOV RESULT, AL MOV AL, VARX+1 ADC AL, VARY+1 MOV RESULT+1,AL, ENDM DATA SEGMENT A1 D1234H A2 D5678H A3 DWI B1 D1357H B2 D2468H B3 DW DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: PUSH DS MOv AX, 0 PUSH AX
BCDADD MACRO VARX,VARY,RESULT MOV AL,VARX ADD AL,VARY MOV RESULT,AL MOV AL,VARX+1 ADC AL,VARY+1 MOV RESULT+1,AL ENDM DATA SEGMENT A1 DW 1234H A2 DW 5678H A3 DW ? B1 DW 1357H B2 DW 2468H B3 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:PUSH DS MOV AX,0 PUSH AX 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工大学计算机科学与技术系李兆 《汇编语言》第7章 MOV A, A1 Mov A%, DATA 1 ADD AL, A2 Mov DS, AX BCDADD1,n2,A3;宏调 1 Mov A3, A 用 1 MOV AL, A1+1 BCDADD B1,B2,B3;再 1 ADC AL, A2+1 次宏调用 1 Mov A3+1, AT RET CODE ENDS 1 MOV AL, B1 1 ADD AL, B2 AND SART 1 Mov B3, AL 1 MOV AL, B1+1 1 ADC AL,B2+1 经宏展开后: 1 MOV B3+1, AT PUSH DS Mov A%, 0 PUSH AX Mov A, DATA 宏汇编程序在所展开的 Mov DS, AX 指令前标识以“1′号以 示区别。较早的版本用
MOV AX,DATA MOV DS,AX BCDADD A1,A2,A3;宏调 用 BCDADD B1,B2,B3 ;再 次宏调用 RET CODE ENDS END START 经宏展开后: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX 1 MOV AL,A1 1 ADD AL,A2 1 MOV A3,AL 1 MOV AL,A1+1 1 ADC AL,A2+1 1 MOV A3+1,AL 1 MOV AL,B1 1 ADD AL,B2 1 MOV B3,AL 1 MOV AL,B1+1 1 ADC AL,B2+1 1 MOV B3+1,AL • 宏汇编程序在所展开的 指令前标识以‘1’号以 示区别。较早的版本用 ‘+’ 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章

安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 712宏定义中的参数: 2参数可以是操作码 1宏定义可以无参数 a macro p1, p2, p3 moy ax,p savereg macro p2 p ush ax endim push bx 调用: push cK a word var nc.ax IS endm 展开: 1 mov ax, word var nc ax
7.1.2 宏定义中的参数: 1 宏定义可以无参数 savereg macro push ax push bx push cx push si endm 2 参数可以是操作码 a macro p1, p2,p3 mov ax,p1 p2 p3 endm 调用: a word_ var ,inc,ax 展开: 1 mov ax,word_var 1 inc ax 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Vb程序设计教程》课程教学资源(PPT课件讲稿)第三章 VB语言基础.pps
- 吉林大学:《C语言》课程教学资源(PPT课件讲稿)第6章 利用数组处理批量数据.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第4章 处理器(CPU).ppt
- 北京大学:人工神经网络(PPT课件讲稿)Artificial Neural Networks,ANN.ppt
- 西安电子科技大学:《神经网络与模糊系统》课程教学资源(PPT课件讲稿)Chapter 6 结构和平衡 Architecture and Equilibria.ppt
- 清华大学:A Feature Weighting Method for Robust Speech Recognition(Speech Activities in CST).ppt
- 北京师范大学现代远程教育:《计算机应用基础》课程教学资源(PPT课件讲稿)第2章 计算机网络应用.ppsx
- 《Java网站开发》教学资源(PPT讲稿)第9章 过滤器和监听器技术.ppt
- 长春大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识(崔天明).ppt
- 合肥工业大学:《网络安全概论》课程教学资源(PPT课件讲稿)第2讲 密码学简介(主讲:苏兆品).ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)Part II 物理层(信号、媒介、数据传输).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第三章 栈与队列.ppt
- 清华大学:An Efficient Trie-based Method for Approximate Entity Extraction with Edit-Distance Constraints.pptx
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.4 Monitors 5.5 Message Passing 5.6 Readers/Writers Problem.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第6章 过程封装——函数.ppt
- 《3ds Max》教学资源(PPT课件)第4章 基本三维模型的创建.ppt
- 南京大学:复杂系统学习(PPT课件讲稿)佩特里网 Petri Nets.pptx
- 香港科技大学:《软件开发》教学资源(PPT课件讲稿)Functions.ppt
- 《计算机文化基础》课程教学资源(PPT课件讲稿)第二章 Windows XP操作系统.ppt
- 电子科技大学:《计算机操作系统》课程教学资源(PPT课件讲稿)第五章 设备管理.ppt
- 《软件质量与测试》课程教学资源(PPT大纲课件,目录版).pptx
- 香港理工大学:Discovering Classification Rules.ppt
- 北京科技大学:物联网知识体系和学科建设(PPT讲稿,王志良).ppt
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)傅里叶分析与卷积 Fourier Analysis and Convolution.pptx
- 沈阳理工大学:《单片机C语言应用程序设计》课程PPT教学课件(单片机C语言编程)04 C51编程设计(廉哲).pptx
- 《软件工程 Software Engineering》教学资源:课程教学大纲.pdf
- 上海交通大学:《编译器构造》课程教学资源(PPT讲稿,马融)Compiler.pptx
- 《数字图象处理》课程教学资源(PPT课件讲稿)第七章 邻域运算.ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 03 Data Preprocessing.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 上海交通大学:Mining Massive Datasets(PPT讲稿).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)动态规划.pptx
- 《数据结构》课程教学资源:课程教学资源(PPT课件讲稿)第九章 查找表.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)抽象数据类型 Abstract Data Types.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)并行编译简介.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第6章 AT89S52单片机的串行口.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第4章 循环控制.ppt
- 上海交通大学:《通信网络》课程PPT教学课件(Communication Networks)Introduction(主讲:叶通).pptx
- 北京师范大学:《多媒体技术基础》课程教学资源(PPT课件讲稿)第二章 数字图像(曾兰芳).ppt
- 利用EXCEL进行数据分析与图表处理(PPT讲稿).pptx