第7章高级汇编语言技术 讲授要点 宏汇编 重复汇编 条件汇编 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 第7章 高级汇编语言技术 讲授要点 ▪ 宏汇编 ▪重复汇编 ▪条件汇编
7.1宏汇编 7.1.1宏定义、宏调用与宏展开 1.宏定义 宏指令名 MACRO[形式参数表 ;宏体 ENDM 2.宏调用 宏指令名[实参数表] 3.宏展开 当源程序被汇编时,MASM用相应的宏体取代每个宏调用,并用实 参数按位置替换宏定义中的形式参数。 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 7.1 宏汇编 7.1.1 宏定义、宏调用与宏展开 1. 宏定义 宏指令名 MACRO [形式参数表] ... ; 宏体 ENDM 2. 宏调用 宏指令名 [实参数表] 3. 宏展开 当源程序被汇编时,MASM用相应的宏体取代每个宏调用,并用实 参数按位置替换宏定义中的形式参数
4.说明 在参数的类型与顺序应与宏定义时的形式参数一致。 宏展开时,若实参数的个数多于形式参数,则忽略多余的实在 参数;若实参数的个数少于形式参数,则多余的形式参数为空。 宏定义只是告诉MASM用一个名字来表示一段语句序列,其 本身不被汇编。 宏指令的参数非常灵活,可以出现在指令的操作数或操作码部 分,MASM在宏展开时对参数进行文本替换。 宏定义可以写在程序的任何地方,但习惯上总是把宏定义写 在程序的最前面。 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 4. 说明 ▪在参数的类型与顺序应与宏定义时的形式参数一致。 ▪ 宏展开时,若实参数的个数多于形式参数,则忽略多余的实在 参数;若实参数的个数少于形式参数,则多余的形式参数为空。 ▪ 宏定义只是告诉MASM用一个名字来表示一段语句序列,其 本身不被汇编。 ▪ 宏指令的参数非常灵活,可以出现在指令的操作数或操作码部 分,MASM在宏展开时对参数进行文本替换。 ▪ 宏定义可以写在程序的任何地方,但习惯上总是把宏定义写 在程序的最前面
【例】参照汇编程序的处理方法,对下面程序中的宏 进行展开 back 4CH dosint EQU 21H disch MACro MOV AH.2 MOV DL. 1 INT 21H ENDM 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 【例】参照汇编程序的处理方法,对下面程序中的宏 进行展开。 back = 4CH dosint EQU 21H dispch MACRO MOV AH,2 MOV DL, '* ' INT 21H ENDM
code SEgMENt ASSUME CS: code main: disch disch MOV ah, back dosing code ENDs END main 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 code SEGMENT ASSUME CS:code main: dispch dispch MOV AH,back INT dosint code ENDS END main