第七章、高级汇编语言技术课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第七章、高级汇编语言技术课件.ppt》由会员分享,可在线阅读,更多相关《第七章、高级汇编语言技术课件.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Assembly LanguageAssembly Language 宏宏汇编汇编 重复汇编重复汇编 条件汇编条件汇编第七章、高级汇编语言技术第七章、高级汇编语言技术第七章、高级汇编语言技术第七章、高级汇编语言技术第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)第第第第16161616讲讲:高:高:高:高级汇编语级汇编语言技言技言技言技术术总目录总目录总目录总目录前一讲前一讲Assembly LanguageAssembly Language7.17.17.17.1、宏汇编、宏汇编、宏汇编、宏汇编 宏宏宏宏:源程序中一段有独立功能的程序代码。:源程序中一段有独立功能的程序
2、代码。:源程序中一段有独立功能的程序代码。:源程序中一段有独立功能的程序代码。宏指令宏指令宏指令宏指令:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替 汇编语言程序汇编语言程序汇编语言程序汇编语言程序指令指令指令指令伪指令伪指令伪指令伪指令(伪操作伪操作伪操作伪操作)宏指令宏指令宏指令宏指令子程序调用与宏调用的比较子程序调用与宏调用的比较子程序调用与宏调用的比较子程序调用与宏调用的比较 子
3、程序调用子程序调用子程序调用子程序调用节省存储空间、但浪费时间(子程序转入、返回、保存与恢复节省存储空间、但浪费时间(子程序转入、返回、保存与恢复节省存储空间、但浪费时间(子程序转入、返回、保存与恢复节省存储空间、但浪费时间(子程序转入、返回、保存与恢复 寄存器、参数传递等操作);寄存器、参数传递等操作);寄存器、参数传递等操作);寄存器、参数传递等操作);宏调用宏调用宏调用宏调用浪费存储空间、但节省时间;浪费存储空间、但节省时间;浪费存储空间、但节省时间;浪费存储空间、但节省时间;第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲
4、后一讲前一讲前一讲Assembly LanguageAssembly Language优点:优点:优点:优点:模块化模块化 省内存省内存缺点:开销大缺点:开销大宏定义:宏定义:Q macro x,y endm主程序:主程序:Q a,bQ c,dQ e,f目标程序:目标程序:优点:优点:参数传送简单参数传送简单 执行效率高执行效率高 缺点:缺点:占用内存空间大占用内存空间大主程序:主程序:CALL ACALL ACALL AA子程序:子程序:RET第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly L
5、anguageAssembly LanguageAssembly LanguageAssembly Language2.2.2.2.宏调用宏调用宏调用宏调用 macro_name macro_name 实元表实元表 (必须先定义后调用必须先定义后调用).实元表(实元表(actual parameter listactual parameter list)的各实参间用)的各实参间用“,”隔开隔开;.实参与形参之间一一对应,即第一个实参传给第一个形参,第二个实参替换第二个实参与形参之间一一对应,即第一个实参传给第一个形参,第二个实参替换第二个形参,以此类推;实参个数可以小于、等于或大于形参个数,小
6、于时后面的形参作形参,以此类推;实参个数可以小于、等于或大于形参个数,小于时后面的形参作“空空空空”处理,大于时后面多余的实参不作任何考虑;处理,大于时后面多余的实参不作任何考虑;.宏调用可以出现在宏调用可以出现在“数据段、代码段数据段、代码段”的的任何位置任何位置任何位置任何位置;.实参可以时数字常量、字符常量、字符串常量、寄存器、存储单元、用各种寻址方实参可以时数字常量、字符常量、字符串常量、寄存器、存储单元、用各种寻址方式找到的地址、算术或逻辑表达式、语句名、过程名、完整的操作码、操作码的一部分式找到的地址、算术或逻辑表达式、语句名、过程名、完整的操作码、操作码的一部分和表达式的值等等;
7、和表达式的值等等;3.3.3.3.宏展开宏展开宏展开宏展开汇编程序汇编程序在汇编时在汇编时在汇编时在汇编时把宏调用展开把宏调用展开l l 宏定义体宏定义体复制到宏指令位置,实参代替形参;复制到宏指令位置,实参代替形参;l l locallocal中的标号中的标号依次转换为依次转换为?00003?00003?ffff?ffff.宏展开时用实参取代相应的形参;(注意实际意义)宏展开时用实参取代相应的形参;(注意实际意义).宏展开时在宏展开时在MASMMASM汇编时实现的;因为宏展开是代码替换,所以多次调用多次替换,汇编时实现的;因为宏展开是代码替换,所以多次调用多次替换,因而多占用空间;因而多占用
8、空间;.宏展开时汇编程序会在宏体的每一条指令前加上宏展开时汇编程序会在宏体的每一条指令前加上“1 1,2 2,3”3”等数字,以标识等数字,以标识该指令或语句名是由宏展开得到的,同时标识宏的层次,目标程序代码是最后层次(不该指令或语句名是由宏展开得到的,同时标识宏的层次,目标程序代码是最后层次(不是最深层次)展开的代码;是最深层次)展开的代码;第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language例例1:保存寄存器:保存寄存器宏展开:宏展开:1 pus
9、h ax1 push ax1 push bx1 push bx1 push cx1 push cx1 push dx1 push dx1 push si1 push si1 push di1 push di宏定义:宏定义:saveregsavereg MACROMACRO push ax push ax push bx push bx push cx push cx push dx push dx push si push si push di push di ENDMENDM宏调用:宏调用:saveregsavereg第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目
10、录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language例例例例2 2 2 2:两个字相乘:两个字相乘:两个字相乘:两个字相乘宏展开:宏展开:宏展开:宏展开:1 push dx1 push ax1 mov ax,cx1 imul var1 mov xyzbx,ax1 pop ax1 pop dx宏定义:宏定义:宏定义:宏定义:multiplymultiply MACROMACROopr1opr1opr1opr1,opr2opr2opr2opr2,resultresultresultresult push dx push dx
11、push ax push ax mov ax,mov ax,opr1opr1opr1opr1 imul imul opr2opr2opr2opr2 mov mov resultresultresultresult,ax,ax pop ax pop ax pop dx pop dx ENDMENDM宏调用:宏调用:宏调用:宏调用:multiplymultiply cx,var,xyzbx cx,var,xyzbx第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly La
12、nguage宏调用:宏调用:宏调用:宏调用:absolabsolabsolabsol var1,axvar1,axvar1,axvar1,axabsolabsolabsolabsol bxbxbxbxabsol dx,var2,cxabsol dx,var2,cxabsol dx,var2,cxabsol dx,var2,cx宏展开:宏展开:1 cmp var1var1var1var1,01?0000:?0000:?0000:?0000:jge?0001?0001?0001?00011 neg axaxaxax1?0001:?0001:?0001:?0001:1 cmp bxbxbxbx,01
13、?0002:?0002:?0002:?0002:jge?0003?0003?0003?00031 neg 1?0003?0003?0003?0003:1 cmp dxdxdxdx,01?0004:?0004:?0004:?0004:jge?0005?0005?0005?00051 neg var2var2var2var21?0005?0005?0005?0005:例例例例2 2 2 2:求绝对值:求绝对值:求绝对值:求绝对值宏定义:宏定义:宏定义:宏定义:absol absol MACROMACRO oper,oper,varvar locallocal next1,next2next1,ne
14、xt2 cmp cmp operoper,0,0 jge jge next2next2next1:next1:neg neg varvarnext2:next2:ENDMENDM第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly LanguageAssembly LanguageAssembly Languageleap macro cond,lab j&cond lab endm宏定义:宏定义:宏调用:宏调用:leap z,thereleap nz,here宏展开
15、:宏展开:1 jz there 1 jnz here符号符号1 1&符号符号2 2 第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly LanguageAssembly LanguageAssembly Language例:定义宏指令例:定义宏指令例:定义宏指令例:定义宏指令STRGSTRG,实现存储字符串的功能,实现存储字符串的功能,实现存储字符串的功能,实现存储字符串的功能宏定义:宏定义:宏定义:宏定义:STRG STRG MACROMACRO STRING S
16、TRING DB&STRING&DB&STRING&ENDMENDM宏调用宏调用宏调用宏调用:STRG 25STRG 251 1 STRG STRG%25 25 1 1宏展开:宏展开:宏展开:宏展开:1 DB 251 DB 2511 1 DB 1 DB 2424%表达式表达式表达式表达式 第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly LanguageAssembly LanguageAssembly Language7.1.47.1.47.1.47.1.4、列
17、表伪操作:、列表伪操作:、列表伪操作:、列表伪操作:.XALL.XALL.XALL.XALL缺省的列表方式,在缺省的列表方式,在LSTLST清单中只列出宏体中产生目标代码的语句清单中只列出宏体中产生目标代码的语句;注意注意单分号单分号;注释在宏展开时展开,双分号注释在宏展开时展开,双分号;注释在宏展开时也展开;注释在宏展开时也展开;.LALL.LALL.LALL.LALL在在LSTLST清单中列出宏展开后的全部语句清单中列出宏展开后的全部语句(包括注释包括注释););注意注意单分号单分号;注释在宏展开时展开,而双分号注释在宏展开时展开,而双分号;注释在宏展开时注释在宏展开时不展开不展开;.SA
18、LL.SALL.SALL.SALL在在LSTLST清单中不列出任何宏展开后的语句清单中不列出任何宏展开后的语句;宏定义:宏定义:starter starter macromacro csname,dsname,es:dsname csname,dsname,es:dsnameassume cs:csname,ds:dsname,es:dsnameassume cs:csname,ds:dsname,es:dsname push pushds ds ;ds;ds入栈入栈 sub subax,ax ax,ax ;ax;ax 清零清零 push ax push ax mov movax,dsname
19、ax,dsname mov movds,axds,ax mov moves,axes,axendmendm宏调用:宏调用:.xall.xallstarter code,datastarter code,dataLSTLST清单清单1 push ds ;ds;ds入栈入栈1 sub ax,ax;ax;ax 清零清零1 push ax1 mov ax,data1 mov ds,ax1 mov es,ax第第1616讲:高级语言汇编技术讲:高级语言汇编技术(2(2课时课时)总目录总目录总目录总目录后一讲后一讲后一讲后一讲前一讲前一讲Assembly LanguageAssembly Language
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 高级 汇编语言 技术 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内