文档详情

微机原理与系统设计第七章.ppt

发布:2017-06-20约4.36千字共27页下载文档
文本预览下载声明
* * ? 宏汇编 ? 重复汇编 ? 条件汇编 第七章 高级汇编语言技术 1. 宏汇编 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次 使用的功能用一条宏指令来代替。 汇编语言程序 指令 伪指令(伪操作) 宏指令 优:模块化 省内存 缺:开销大 宏定义: Q macro x,y … endm 主程序: … Q a, b … Q c, d … Q e, f … 目标程序: … … … … … … 优: 参数传送简单,执行效率高 缺: 占用内存空间大 主程序: … CALL ---- … CALL ---- … CALL ---- … 子程序: … … … RET 宏展开:汇编程序把宏调用展开 宏定义体 复制到宏指令位置,实参代虚参 LOCAL中的标号 ??0000~??ffff 宏定义: macro_name MACRO [哑元表] ; 形参/虚参 [LOCAL 标号表] …… …… ; 宏定义体 ENDM 宏调用: (必须先定义后调用) macro_name [实元表] ; 实参 例:保存寄存器 宏展开: 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 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 例:求绝对值 宏定义: absol MACRO oper LOCAL next cmp oper,0 jge next neg oper next: ENDM 宏调用: …… absol var …… absol bx …… 宏展开: …… 1 cmp var,0 1 jge ??0000 1 neg var 1 ??0000: …… …… 1 cmp bx,0 1 jge ??0001 1 neg bx 1 ??0001: …… 宏汇编操作符: ;; % 符号1 符号2 宏展开时,合并前后两个符号形成一个符号。 ;; 注释 宏展开时,;;后面的注释不予展开。 % 表达式 汇编程序将%后面的表达式转换为数字,并在展开期间用这个数取代哑元。 leap macro cond,lab jcond lab endm 宏定义: 宏调用: leap z, there …… leap nz, here 宏展开: 1 jz there …… 1 jnz here 宏定义: msg macro lab,num,xyz labnum db ‘HELLO MR.xyz’ endm 宏调用: msg ary,1,wang …… msg ary,2,zhang 宏展开: 1 ary1
显示全部
相似文档