第7章 高级汇编语言技术
汇编教案ppt,武汉理工大学
第七章
高级汇编语言技术
宏汇编
重复汇编 条件汇编
汇编教案ppt,武汉理工大学
1. 宏汇编宏:源程序中一段有独立功能的程序代码。宏指令:用户自定义的指令。在编程时,将多次 使用的功能用一条宏指令来代替。
指令汇编语言程序 伪指令(伪操作) 宏指令2
汇编教案ppt,武汉理工大学
主程序: … CALL ---… CALL ---… CALL ---…
子程序: … … … RET 目标程序: …
优:模块化 省内存 缺:开销大
宏定义: Q macro x,y
… endm
主程序: … Q a, b … Q c, d … Q e, f …
优: 参数传送 简单,执 行效率高 缺:
……… …
占用内存 空间大3
…
汇编教案ppt,武汉理工大学
宏定义:macro_name MACRO [哑元表] ; 形参/虚参[LOCAL 标号表] …… …… ; 宏定义体
ENDM
宏调用: (必须先定义后调用)macro_name [实元表]; 实参
宏展开:汇编程序把宏调用展开宏定义体 复制到宏指令位置,实参代虚参 LOCAL中的标号 ??0000~??ffff4
汇编教案ppt,武汉理工大学
例:保存寄存器宏定义: savereg
MACRO push push push push push push ENDM
ax bx cx dx si di
宏展开: 1 1 1 1 1 1 push push push push push push ax bx cx dx si di
宏调用: savereg
汇编教案ppt,武汉理工大学
例:两个字相乘宏定义:multiply MACRO push push mov imul mov pop pop ENDM opr1,opr2,result dx ax ax,opr1 opr2 result,ax ax 宏展开: dx 1 1 1 1 1 1 1 push push mov imul mov pop pop dx ax ax,cx var xyz[bx],ax ax dx6
宏调用:multiply cx,var,xyz[bx]
汇编教案ppt,武汉理工大学
例:求绝对值宏定义:absol MACRO oper LOCAL next cmp oper,0 jge next neg oper ENDM
宏展开:1 1 1 1 …… cmp jge neg ??0000: …… …… cmp jge neg ??0001: …… var,0 ??0000 var
next: 1 1 1 1 bx,0 ??0001 bx
宏调用:…… absol …… absol …… var
bx7
汇编教案ppt,武汉理工大学
宏汇编操作符: &符号1 & 符号2
;;
%
宏展开时,合并前后两个符号形成一个符号。
;; 注释宏展开时,;;后面的注释不予展开。
% 表达式 汇编程序将%后面的表达式转换为数字,并在 展开期间用这个数取代哑元。8
汇编教案ppt,武汉理工大学
宏定义:leap macro cond,lab
j&condendm
lab
宏调用:leap z, there
宏展开:1 jz there
……leap nz, here 1
……jnz here
汇编教案ppt,武汉理工大学
宏定义: msg
macro
lab,num,xyz
lab&num db ‘HELLO MR.&xyz’ endm
宏调用:
msg …… msg
ary,1,wang
ary,2,zhang
宏展开:1 ary1 db ‘HELLO MR.wang’ …… 1 ary2 db ‘HELLO MR.zhang’10
汇编教案ppt,武汉理工大学
例:定义宏指令STRG,实现存储字符串的功能 宏定义: STRG MACRO DB STRING
‘&STRING&’
ENDM宏调用: STRG 25-1
STRG宏展开: 1
% 25 -1DB ‘25-1’
1
DB
‘24’11
汇编教案ppt,武汉理工大学
宏定义: msgerrmsg
macro count,string msg&count db string endm macro text cntr = cntr+1 msg %cntr,text endm
cntr=0 宏调用: …… errmsg …… errmsg
‘SYNTAX ERROR’ ‘INVALID OPERAND’
1 1 宏展开: 21 1 2
cntr msg msg1 …… cntr msg msg2
= cntr+1 %cntr,‘SYNTAX ERROR’ db ‘SYNTAX ERROR’= cntr+1 %cntr,‘INVALID OPERAND’ db ‘INVALID
OPERAND’
汇编教案ppt,武汉理工大学
列表伪操作:.LALL :在LST清单中列出宏展开后的全部 语句(包括注释)。
.SALL :在LST清单中不列出任何宏展开后的 语句。 .XALL :缺省的列表方式,只列出宏体中产生 目标代码的语句。
汇编教案ppt,武汉理工大学
starter macro csname, dsname assume cs:csname, ds:dsname, es:dsname push ds sub ax, ax push ax mov ax, dsname mov ds, ax mov es, ax endm1 1 1 1 1 1 push ds sub ax, ax push ax mov ax, data mov ds, ax mov es, ax14
宏调用: . xall starter code, data
汇编教案ppt,武汉理工大学
建立宏库:>EDIT MACRO . MAC macro1 MACRO [哑元表] ……ENDMmacro2 MACRO [哑元表] …… ENDM …… MACRO [哑元表] …… ENDM
macroN
调用宏库:>EDIT EXP.ASM
include MACRO.MAC …… macro1 [实元表] …… macro2 [实元表] …… macroN [实元表] ……
purge macroN15
汇编教案ppt,武汉理工大学
2. 重复汇编用于连续产生完全相同或基本相同的一组代码。 重复伪操作 REPTREPT……
表达式;重复块
不定重复伪操作 IRP/IRPCIRP……
ENDM
哑元,<自变量表>;重复块
ENDM IRPC……
哑元,字符串;重复块16
ENDM
汇编教案ppt,武汉理工大学
例 : 把 字 符 ‘ A’ 到 ‘ Z’ 的 ASCII 码 填 入 数 组 TABLE 汇编后:CHAR = ‘A’ TABLE LABEL BYTE 1 1 1 DB DB DB …… 1 DB 5AH 41H 42H 43H
REPTDB CHAR = CHAR+1
26CHAR
ENDM
汇编教案ppt,武汉理工大学
例:产生一组指令,将字数组TAB的内容入栈保存; 宏定义 PUSH_TAB MACRO PUSH ENDM K TAB+k ; 宏展开 2 2 2 REPT 5 2 2 PUSH PUSH PUSH PUSH PUSH TAB+0 TAB+2 TAB+4 TAB+6 TAB+8
; 宏调用I=0
PUSH_TAB %II=I+2 ENDM
汇编教案ppt,武汉理工大学
例:建立ARRAY数组 汇编后:.lall ARRAY LABEL REPT DW ENDM DW ARRAY WORD 7 $+2
ARRAY LABEL1 1 DW DW $+2 $+2
WORD
11 1
DWDW DW
$+2$+2 $+2
11
DWDW DW
$+2$+2 ARRAY19
汇编教案ppt,武汉理工大学
例:生成一组入栈指令
汇编后:1 PUSH PUSH PUSH PUSH AX BX CX DX
IRP
REG, <AX,BX,CX,DX> PUSH REG
1 1 1
ENDM
例:生成存储字符串的汇编语句 汇编后:array label byte 1 1 1 1 1 db db db db db ‘NO.1’ ‘NO.2’ ‘NO.3’ ‘NO.4’ ‘NO.5’20
IRPCdb ENDM
K, 12345‘NO.&K’
汇编教案ppt,武汉理工大学
3. 条件汇编根据条件把一段源程序包括在汇编语言程序内 或者排除在外。
一般格式: IF 自变量 ; 为条件 ; 自变量满足条件则汇编此块
……
[ELSE]…… ENDIF21
; 自变量不满足条件则汇编此块
…… 此处隐藏:1721字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




