第7章 高级汇编语言技术
更新时间:2023-05-13 23:48:02 阅读量: 实用文档 文档下载
汇编教案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
; 自变量不满足条件则汇编此块
正在阅读:
第7章 高级汇编语言技术05-13
大型超市顾客忠诚度设计05-31
2011年谷里镇社区建设工作总结07-11
《观潮》教学设计12-15
采矿权延续登记办事指南08-12
微机原理黄冰版--作业答案09-10
苏教版六年级综合实践上册教案2017.909-06
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 汇编语言
- 高级
- 技术
- 把微课融入到中职计算机教学工作中
- 医院急危重症患者抢救制度
- 九年级期中调研英语听力朗读材料
- 燃气轮机运行和维修方式对其寿命影响因素的探讨
- 粤教版四年级品德与社会下册 你的书本哪里来
- 2011年4月24日江西公务员考试行测真题
- 安全生产管理制度(试行)(doc 35页)
- MATLAB在数学建模中的应用
- 名医论方——祛痰剂
- 2014-2020年中国磁悬浮列车行业监测与发展趋势研究报告
- 常用阀门的原理及其使用方法
- 宽带接入技术(HFC)
- 第三讲基本结构形式、建筑工程
- 07.事故报告管理制度
- 2019精选教育必修一专题2第2单元第1课时金属钠的性质与应用说课.doc
- 团结就是力量 作文
- 职业学校专业建设存在的问题及对策
- 电性能vs失效分析2
- pid控制外文加中文文献
- 四大行长讲话 银行能否担当重任