第七章高级汇编语言技术 宏汇编 重复汇编 条件汇编
1 • 宏汇编 • 重复汇编 • 条件汇编 第七章 高级汇编语言技术
1.宏汇 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次 使用的功能用一条宏指令来代替。 指令 汇编语言程序{伪指令(伪操作) 宏指令
2 1. 宏汇编 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次 使用的功能用一条宏指令来代替。 汇编语言程序 指令 伪指令(伪操作) 宏指令
macro name MACRO[哑元表]形参/虚参 [ LOCAL标号表] 宏定义体 ENDM 宏调用:(必须先定义后调用) macro_name[实元表] 实参 宏展开:汇编程序把宏调用展开
3 宏展开:汇编程序把宏调用展开 宏定义: macro_name MACRO [哑元表] ; 形参/虚参 [LOCAL 标号表] …… …… ; 宏定义体 ENDM 宏调用: (必须先定义后调用) macro_name [实元表] ; 实参
宏定义: savereg MACRO push ax push bx push CX push d 宏展开: push Si push di 1 push ax ENDM 1 push bx 1 push CX 1 push dx 宏调用: 1 push Si savereg 1 push di
4 例:保存寄存器 宏展开: 1 push ax 1 push bx 1 push cx 1 push dx 1 push si 1 push di 宏定义: savereg MACRO push ax push bx push cx push dx push si push di ENDM 宏调用: savereg
宏定义 multiply MACRo oprl, opr, result push dx push ax mov ax, oprl imul opr mov result. ax 宏展开: pop ax pop d push ENDM 1 push ax 1 mov ax. Cx 1 imu var 宏调用: 1 mov xyz Lbx, ax 1 pop ax multiply Cx, var, xyz Lbx] 1 pop dx 5
5 例:两个字相乘 宏定义: multiply MACRO opr1,opr2,result push dx push ax mov ax,opr1 imul opr2 mov result,ax pop ax pop dx ENDM 宏调用: multiply cx,var,xyz[bx] 宏展开: 1 push dx 1 push ax 1 mov ax,cx 1 imul var 1 mov xyz[bx],ax 1 pop ax 1 pop dx