汇编语言程序设计-第7章-高级汇编语言技术ppt课件.ppt

上传人:飞****2 文档编号:90032590 上传时间:2023-05-13 格式:PPT 页数:48 大小:394.50KB
返回 下载 相关 举报
汇编语言程序设计-第7章-高级汇编语言技术ppt课件.ppt_第1页
第1页 / 共48页
汇编语言程序设计-第7章-高级汇编语言技术ppt课件.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《汇编语言程序设计-第7章-高级汇编语言技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计-第7章-高级汇编语言技术ppt课件.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程8086/80888086/8088和和ARMARM核核汇编语言程序设计汇编语言程序设计第第7 7章章 高级汇编语言技术高级汇编语言技术5/7/20231第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程课前思考课前思考1.1.宏汇编技术与子程序技术相比有

2、哪些优、缺点?它们的宏汇编技术与子程序技术相比有哪些优、缺点?它们的工作方式有何差别?工作方式有何差别?2.2.虚参与实参是否应一虚参与实参是否应一 一对应?一对应?3.3.哑元表中的变元可以取何种值?哑元表中的变元可以取何种值?4.&4.&操作符及操作符及%操作符如何应用?操作符如何应用?5.5.宏定义体内的程序段有标号怎么办?宏定义体内的程序段有标号怎么办?6.6.宏定义允许嵌套、递归调用吗?宏定义允许嵌套、递归调用吗?7*.IRP7*.IRP与与IRPCIRPC之间的区别?之间的区别?8.8.条件汇编中有哪几种条件?条件汇编中有哪几种条件?9*.9*.高级语言结构中有哪几种形式?高级语言

3、结构中有哪几种形式?5/7/20232第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程教学目的教学目的:了解并掌握宏汇编、重复汇编及不定重复汇编、条件汇编和高级语言结构编程技术。教学重点:教学重点:子程序的调用和返回。保护与恢复寄存器。子程序的参数传送。伪操作STRUC的定义及应用。嵌套与递归子程序。DOS系统功能调用。教学重点:教学重点:宏调用的优点、宏调用和子程序调用工作方式的差别、虚参与实元、哑元表中的变元取值的多样性

4、、&操作符、%操作符、LOCAL伪操作解决宏定义体中的符号问题、宏定义的嵌套、递归、重复汇编、不定重复汇编、条件汇编中的多种条件。教学难点:教学难点:宏调用的优点、宏调用和子程序调用工作方式的差别、虚参与实元、哑元表中的变元取值的多样性、&操作符、%操作符、LOCAL伪操作解决宏定义体中的符号问题、宏定义的嵌套、递归、重复汇编、不定重复汇编、条件汇编中的多种条件。教学方法及手段:教学方法及手段:课堂讲授、小结讲评。课外作业:课外作业:P177 1,5学时分配:学时分配:4教学内容:教学内容:宏汇编、重复汇编、条件汇编自学内容:自学内容:高级语言结构5/7/20233第第7章章 高级汇编语言技术

5、高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 宏汇编宏汇编7.3 条件汇编7.2 重复汇编第第7 7章章 高级汇编语言技术高级汇编语言技术7.4 库的使用5/7/20234第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程什么是宏?什么是宏?什么是宏?什么是宏?宏(或

6、宏指令)是源程序中一段有独立功能的程序宏(或宏指令)是源程序中一段有独立功能的程序代码,只需定义一次,可以多次调用。代码,只需定义一次,可以多次调用。为什么使用宏汇编?为什么使用宏汇编?在编制汇编语言程序过程中,有些功能程序段需在编制汇编语言程序过程中,有些功能程序段需要多次重复使用,所不同的只是参与操作的操作数。要多次重复使用,所不同的只是参与操作的操作数。使用宏指令语句可以减少程序书写错误,缩短源程序使用宏指令语句可以减少程序书写错误,缩短源程序长度,使源程序编写像高级语言一样清晰、简洁。特长度,使源程序编写像高级语言一样清晰、简洁。特别是使用宏库后,可以提高编程效率。别是使用宏库后,可以

7、提高编程效率。为了减少编程的工作量,通常采用两种方法:为了减少编程的工作量,通常采用两种方法:将程序段编写为独立的子程序将程序段编写为独立的子程序 将程序段定义成宏将程序段定义成宏7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编由此引出宏定义、调用、参数传递、嵌套等问题由此引出宏定义、调用、参数传递、嵌套等问题5/7/20235第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程宏定义的格式 由伪指令MACRO与ENDM

8、实现。形式如下:宏指令名MACRO 形式参数表 ;宏体 ENDM7.1.1 7.1.1 宏定义宏定义 7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编说明:(1)宏指令名由编程序者自定,但必须符合标号的命名规则。(2)MACRO和ENDM是一对伪指令,分别表示宏定义的开始和结束。(3)宏体必须是指令、伪指令及宏指令构成的程序段。(4)形参表可根据需要作取舍。当需要设置多个形参时,各形参之间要用逗号分隔。5/7/20236第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定

9、性,且在一定部位生长繁殖,引起不同程度的病理生理过程宏定义的功能宏定义的功能 将宏体定义为一条宏指令,以便在其后的程序中通过将宏体定义为一条宏指令,以便在其后的程序中通过对宏指令的调用来使用对应的宏体。对宏指令的调用来使用对应的宏体。7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.1 7.1.1 宏定义宏定义 5/7/20237第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程例例7.17.1(教材例教材例11

10、.1)11.1)以下宏定义所定义的宏指令AX10可以实现寄存器AX内容乘以10的功能。(见(见hong.asmhong.asm)AX10AX10 MACRO ;宏名 AX10 PUSHDX SALAX,1 MOVDX,AX SALAX,1 SALAX,1 ADDAX,DX POPDX ENDM7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.1 7.1.1 宏定义宏定义 注意和段定义及过程定义的区别5/7/20238第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳

11、定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 宏调用的格式宏调用的格式 宏调用的格式为宏调用的格式为:宏指令名宏指令名 实参表实参表 说明:宏指令名所指定的宏指令的定义必须放在该宏调用 之前。(2)实参表通常与宏定义中形参表相对应。当需要使用多个实参时,各实参之间要用逗号分隔。5/7/20239第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生

12、长繁殖,引起不同程度的病理生理过程宏扩展宏扩展 宏汇编程序在汇编源程序时自动用宏指令的内容代替宏指宏汇编程序在汇编源程序时自动用宏指令的内容代替宏指令,叫宏扩展令,叫宏扩展。7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 当宏汇编程序在汇编时扫描到宏指令语句时,就把宏定当宏汇编程序在汇编时扫描到宏指令语句时,就把宏定义中宏体的程序段目标代码插入在宏指令语句的位置上,如义中宏体的程序段目标代码插入在宏指令语句的位置上,如果是带参数的宏指令语句,同时把相应实参一一替代宏体中果是带参数的宏指令语句,同时把相应实参一一替代宏体中对应形参的位

13、置,对原有宏体目标代码作相应修改。这样对应形参的位置,对原有宏体目标代码作相应修改。这样,在在程序的目标代码中,每个宏指令语句位置上都包含有相应宏程序的目标代码中,每个宏指令语句位置上都包含有相应宏体的目标代码,因此体的目标代码,因此宏指令的使用不会减少程序的目标代码宏指令的使用不会减少程序的目标代码长度长度。注意:它与子程序的差别。宏在翻译阶段起作用,子注意:它与子程序的差别。宏在翻译阶段起作用,子注意:它与子程序的差别。宏在翻译阶段起作用,子注意:它与子程序的差别。宏在翻译阶段起作用,子程序在执行阶段起作用。程序在执行阶段起作用。程序在执行阶段起作用。程序在执行阶段起作用。5/7/2023

14、10第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程两个字操作数相乘两个字操作数相乘(见(见hong.asm)宏定义:宏定义:MULTIPLYMACRO OPR1,OPR2,RESULTPUSHDXPUSHAXMOVAX,OPR1IMULOPR2MOVRESULT,AXPOPAXPOPDXENDM宏调用:宏调用:MULTIPLYCX,VAR,XYZBXMULTIPLY240,BX,SAVE7.1 7.1 7.1 7.1 宏汇

15、编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 注意现场保护及注意现场保护及注意现场保护及注意现场保护及其后的恢复其后的恢复其后的恢复其后的恢复5/7/202311第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程宏展开:宏展开:1PUSH DX 1PUSH AX 1MOV AX,CX 1IMUL VAR 1MOV XYZBX,AX 1POP AX 1POP DX 1PUSH DX 1PUSH AX

16、1MOV AX,240 1IMUL BX 1MOV SAVE,AX 1POP AX 1POP DX7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 MULTIPLYCX,VAR,XYZBXMULTIPLY240,BX,SAVE宏调用宏调用:5/7/202312第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程5/7/202313第第7章章 高级汇编语言技术高级汇编语言

17、技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 实实参和和形参是一一对应的,是一一对应的,若实若实参的个数多于的个数多于形参,则忽略多余的实则忽略多余的实参;若实元的个数少于哑;若实元的个数少于哑参,则多余的,则多余的形参为空。为空。形参形参可以作为宏体中指令的可以作为宏体中指令的助记符、操作数及标号助记符、操作数及标号,宏调用用实参取

18、代形参时必须保证所产生的指令是有效。宏调用用实参取代形参时必须保证所产生的指令是有效。5/7/202314第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程变元可以是操作码变元可以是操作码变元可以是操作码变元可以是操作码。(见(见hong.asm)宏定义:宏定义:FOOFOOMACROMACRO P1P1,P2P2,P3P3MOVMOVAXAX,P1P1P2P2P3P3ENDMENDM宏调用:宏调用:FOO WORD_VAR

19、FOO WORD_VAR,INCINC,AXAX宏展开:宏展开:1 1MOVMOVAXAX,WORD_VARWORD_VAR1 1INCINCAXAX7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 5/7/202315第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程宏运算符宏运算符、及及!的使用的使用(1)形参可以作为宏体中指令助记符、操作数或标 号的某

20、一部分某一部分某一部分某一部分,在宏体中必须使用“”。(2)当某一个实参中含有空格、逗号等分隔符时,必 须用“”将其括起,以免被视作多个实参。(3)在宏调用时,若要求将实参所代表的数值(而不是 实参本身)替代形参,则必须在实参前使用“”。7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 5/7/202316第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理

21、生理过程变元可以是操作码的一部分。变元可以是操作码的一部分。变元可以是操作码的一部分。变元可以是操作码的一部分。(见(见hong.asm)CONCALL MACRO CON,SUBN LOCAL GOON JN&CON GOON CALL SUBNGOON:NOP ENDM该宏定义所定义的宏指令CONCALL可以实现子程序的条件调用。设有宏调用 CONCALL B,SUBl则其宏扩展为:+JNB?0000 +CALL SUB1 +?0000:NOP7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 变元是操作变元是操

22、作变元是操作变元是操作码的一部分码的一部分码的一部分码的一部分注意注意注意注意locallocal的使用的使用的使用的使用5/7/202317第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 的使用的使用(见见hong1.asm)hong1.asm)STK MACRO XSSEG SEGMENT S

23、TACK DB XSSEG ENDS ENDM若某个源程序需要定义200个字节,初值为0的堆栈段,则可以使用宏调用:STK 200 DUP(0)其宏扩展为:+SSEG SEGMENT STACK +DB 200 DUP(0)+SSEG ENDS5/7/202318第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用

24、中参数的使用%的使用的使用 DISP MACRO X DB ANSWER:,&X,$ENDM则用符号“”的宏调用:DISP%(2*11-8)产生的宏扩展为:+DB ANSWER:,14,$不使用符号“”的宏调用:DISP 2*11-8产生的宏扩展却是:+DB ANSWER:,2*11-8,$5/7/202319第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程注意:在实参中使用“&”“&”、“”“”“”、“%”“%”等符号,但

25、不作宏运算符时,就必须在其前使用“!”。(见hong1.asm)如:DISP MACRO X DB ANSWER:,&X,$ENDM则用符号“!”的宏调用:DISP !%(2*11-8)产生的宏扩展为:+DB ANSWER:,%(2*11-8),$7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 5/7/202320第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同

26、程度的病理生理过程5/7/202321第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程 宏指令一经定义便可在源程序中调用,若宏体中使用了标号宏指令一经定义便可在源程序中调用,若宏体中使用了标号或变量,在多次宏调用时就会出现多个相同标号或出现变量或变量,在多次宏调用时就会出现多个相同标号或出现变量的重复定义,使用的重复定义,使用LOCALLOCAL伪指令可以解决这一问题。伪指令可以解决这一问题。LOCALLOCAL伪指令伪指令

27、的使用方法及功能如下的使用方法及功能如下:(1)LOCAL(1)LOCAL伪指令的一般格式:伪指令的一般格式:LOCAL LOCAL 标号及变量表标号及变量表 各标号、变量之间均用逗号分隔。各标号、变量之间均用逗号分隔。(2)(2)在宏定义中,在宏定义中,LOCALLOCAL伪指令必须紧接伪指令必须紧接MACROMACRO伪指令之后。伪指令之后。(3)(3)在处理各个宏调用时,汇编程序将自动以在处理各个宏调用时,汇编程序将自动以?0000?0000,?0001?0001,?FFFF?FFFF替代替代LOCALLOCAL从伪指令列出的各个标号或变量,从伪指令列出的各个标号或变量,从而避免多次宏调

28、用时出现多个相同标号或出现变量重复定从而避免多次宏调用时出现多个相同标号或出现变量重复定从而避免多次宏调用时出现多个相同标号或出现变量重复定从而避免多次宏调用时出现多个相同标号或出现变量重复定 义的问题。义的问题。义的问题。义的问题。(见见见见hong.asm)hong.asm)hong.asm)hong.asm)7.1.37.1.3宏定义和宏调用中参数的使用宏定义和宏调用中参数的使用 7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编5/7/202322第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体

29、防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.4 7.1.4 宏嵌套宏嵌套 宏嵌套与子程序一样包括两种情况:宏嵌套与子程序一样包括两种情况:其一,宏定义的宏体中包括宏调用,即在宏体中调用宏指其一,宏定义的宏体中包括宏调用,即在宏体中调用宏指令。在这种情况下要注意,其中调用的宏指令必须先行定令。在这种情况下要注意,其中调用的宏指令必须先行定义;义;其二,宏体中包括宏定义。其二,宏体中包括宏定义。注意:与所有的编程语言一样,不能在源程序中直接调用内层定义的宏指令。换言之,在源程序中只有通过外层宏

30、指令的调用才能调用内层宏指令,不能跨层调用。5/7/202323第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程例:在宏定义中使用宏调用例:在宏定义中使用宏调用(见见hong.asm)SHRF MARCO XMOVCL,XSARAL,CLENDMSHRFQT MACRO Y,Z,RESULTPUSHAXPUSHCXMOVAL,ZSHRFYANDAL,ZMOVRESULT,ALPOPCXPOPAXENDM宏定义宏展开宏调用SH

31、RFQT 2,10,AH1PUSHAX1PUSHCX1MOVAL,102MOVCL,22SARAL,CL1ANDAL,101MOVAH,AL1POPCX1POPAX5/7/202324第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程例:在宏定义中也可以定义宏定义例:在宏定义中也可以定义宏定义SHEAT MARCOINMOVE,OPTRINMOV MACRO X,Y,RESULT PUSHAXPUSHCXMOVCL,XMOVA

32、L,YS&OPTR AL,CLMOVRESULT,ALPOPCXPOPAXENDMENDM宏定义生成宏定义SHRF宏调用SHEAT SHRF,ARSHRFMACRO X,Y,RESULTPUSHAXPUSHCXMOVCL,XMOVAL,YSARAL,CLMOVRESULT,ALPOPCXPOPAXENDM5/7/202325第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程例:在宏定义中也可以定义宏定义例:在宏定义中也可以定义

33、宏定义宏展开1PUSHAX1PUSHCX1MOVCL,21MOVAL,401SARAL,CL1MOVDL,AL1POPCX1POPAX宏调用SHRF 2,40,DL5/7/202326第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.4 7.1.4 宏嵌套宏嵌套(1)宏指令名可以与指令助记符及伪指令名同名。在此情况下,宏指令的优先级较高宏指令的优先级较高,同名的指

34、令或伪指令的原有功能失效。在利用这一方法改变了某个指令助记符或伪指令名的原有功能后,可以通过宏调用来使用新定义的功能。若要恢复其原有功能,只要使用清除宏定义的伪指令:PURGE 宏指令名表例如:例如:CBWCBW是一个已定义宏名那么下面:是一个已定义宏名那么下面:CBW ;CBW ;宏调用宏调用 PURGE CBW ;PURGE CBW ;清除对清除对CBWCBW的宏定义的宏定义 CBW ;CBW ;将将(AL)(AL)的符号扩展到的符号扩展到AHAH5/7/202327第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体

35、,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.4 宏嵌套宏嵌套(2)(2)宏定义时也要注意现场的保护和恢复。宏定义时也要注意现场的保护和恢复。注意宏扩展后程序的一致性、完整性。注意宏扩展后程序的一致性、完整性。5/7/202328第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程比较是是源程序级源程序级的简化:的简

36、化:宏调用在汇编时进行程序语句宏调用在汇编时进行程序语句的展开,不需要返回;不的展开,不需要返回;不减小目标程序,执行速度减小目标程序,执行速度没有改变没有改变通过形参、实参结合实现参数通过形参、实参结合实现参数传递,简捷直观、灵活多传递,简捷直观、灵活多变变是是目标程序级目标程序级的的简化简化:子程序调用子程序调用在执行时在执行时由由CALLCALL指令转向、指令转向、RETRET指令返回;指令返回;形成的目标代码较短,执形成的目标代码较短,执行速度减慢行速度减慢需要利用寄存器、存储单元需要利用寄存器、存储单元或堆栈等传递参数或堆栈等传递参数宏宏子程序子程序7.1 7.1 7.1 7.1 宏

37、汇编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 5/7/202329第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程宏与子程序具有各自的特点,程序员应该根据具宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法。体问题选择使用那种方法。通常,当程序段较短或要求较快执行时,应选用通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子宏;当程序段较长或为减小

38、目标代码时,要选用子程序。程序。比较结论宏宏子程序子程序7.1 7.1 7.1 7.1 宏汇编宏汇编宏汇编宏汇编7.1.2 7.1.2 宏调用和宏扩展宏调用和宏扩展 5/7/202330第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.3 7.3 条件汇编条件汇编7.1 7.1 宏汇编宏汇编7.4 *7.4 *库的使用库的使用7.2 重复汇编第第7 7章章 高级汇编语言技术高级汇编语言技术5/7/202331第第7章章 高

39、级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.2.1 使用使用REPTREPT伪指令的重复汇编结构伪指令的重复汇编结构 7.2 7.2 重复汇编重复汇编格式:REPT 整数表达式 重复体 ENDM功能:使汇编程序对重复体作重复汇编,以整数表达式的值作为重复次数。例如(见hong1.asm)CHAR=41H REPT 10 DB CHAR CHAR=CHAR+1 ENDM其结果等价于:DB 41H,42H,43H,44H,45H,46

40、H,47H,48H,49H,4AH5/7/202332第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.2.2 使用使用IRPIRP伪指令的重复汇编结构伪指令的重复汇编结构 7.2 7.2 重复汇编重复汇编格式:IRP 形参,实参表 重复体 ENDM功能:使汇编程序对重复体作重复汇编,每作一次汇编就依次将实参表中的一个实参取代重复体中的形参。例如:IRP REG,AX,BX,CX,DX PUSH REG ENDM其结果等价

41、于:PUSH AX PUSH BX PUSH CX PUSH DX见见hong1.asm5/7/202333第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.2.3 使用使用IRPCIRPC伪指令的重复汇编结构伪指令的重复汇编结构 7.2 7.2 重复汇编重复汇编格式:IRPC 形参,字符串 重复体 ENDM功能:使汇编程序对重复体作重复汇编,每作一次汇编就依次用字符串中的一个字符取代重复体中的形参。例如:IRPC X,0

42、123456789 DB X ENDM其结果等价于:DB 0,1,2,3,4,5,6,7,8,9用d命令查看hong1.asm代码段的相应地址即可5/7/202334第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程重复汇编与循环程序结构的比较重复汇编与循环程序结构的比较 重 复 汇 编 循 环 程 序目标代码所占空间重复体将重复指定的次数,故并不简化目标代码重复部分的目标代码只出现一次,故目标代码短程序运行速度无需循环控制,

43、程序的运行速度快需要循环控制,程序的运行速度慢处理时机在汇编时由汇编程序对重复体作重复汇编;CPU执行的是经过重复汇编的各个重复体目标代码在执行时,CPU在循环控制指令的控制下确定是否重复执行循环体灵活性重复体可以包括指令、伪指令及宏指令;重复汇编所得到的各个重复体目标代码可以完全相同也可以有所区别,此法较灵活循环体只能是指令或宏指令,但不能是伪指令;每次重复执行的目标代码完全相同。此法相对来说欠灵活应用场合程序运行速度是主要考虑因素,需重复的部分有伪指令,以及各个重复体目标代码需要有所区别的场合目标代码所占空间是主要考虑因素,重复的部分不含伪指令以及每次执行的目标代码完全相同的场合5/7/2

44、02335第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.2 7.2 重复汇编重复汇编7.1 7.1 宏汇编宏汇编7.4 *7.4 *库的使用库的使用7.3 7.3 条件汇编条件汇编第第7 7章章 高级汇编语言技术高级汇编语言技术5/7/202336第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且

45、在一定部位生长繁殖,引起不同程度的病理生理过程7.3.1 条件汇编的概念及条件汇编结构条件汇编的概念及条件汇编结构 7.3 7.3 条件汇编条件汇编概念:概念:汇编程序可以根据条件来确定是否汇编某段源程序。条件汇编结构的格式:IF XX 条件 程序块ENDIFIF XX 条件 程序块1ELSE 程序块2 ENDIF5/7/202337第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.3.2 条件汇编伪指令条件汇编伪指令7.

46、3 7.3 条件汇编条件汇编条件汇编伪指令条件汇编伪指令伪伪 指指 令令汇汇 编编 条条 件件IF 表达式表达式IFE 表达式表达式表达式表达式0表达式表达式0IFDEF 符号符号IFNDEF 符号符号符号已被定义,或已被说明为外部符号符号已被定义,或已被说明为外部符号符号未被定义,也未被说明为外部符号符号未被定义,也未被说明为外部符号IFB 参数参数IFNB 参数参数参数为空,用于宏定义体参数为空,用于宏定义体参数非空,用于宏定义体参数非空,用于宏定义体IFIDN 字符串字符串1,字符串字符串2IFDIF 字符串字符串1,字符串字符串2字符串字符串1与字符串与字符串2相同相同字符串字符串1与

47、字符串与字符串2不同不同IF1IF2第一次扫描第一次扫描第二次扫描第二次扫描5/7/202338第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程例(教材11.19)试定义一个实现无条件转移或条件转移的宏指令。当宏调用时给出一个实参,则将其作为无条件转移的目标位置;当宏调用时给出两个实参,则将第一个实参作为条件转移的目标位置,将第二个实参数是否为零作为转移的条件为零则转,非零则不转。GOT MACRO DEST,CONDIFB

48、 JMP DESTELSE MOV AX,COND CMP AX,0 JZ DESTENDIFENDM7.3.2 条件汇编伪指令条件汇编伪指令7.3 7.3 条件汇编条件汇编5/7/202339第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.3.2 条件汇编伪指令条件汇编伪指令7.3 7.3 条件汇编条件汇编GOT BR1 GOT BR2,W_DATA+JMP BR1 +MOV AX,W_DATA+CMP AX,0+JZ

49、 BR2 对应宏展开5/7/202340第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程见hong2.asm5/7/202341第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.2 7.2 重复汇编重复汇编7.1 7.1 宏汇编宏汇编7.3 7.3 条件

50、汇编条件汇编7.4 *7.4 *库的使用库的使用第第7 7章章 高级汇编语言技术高级汇编语言技术5/7/202342第第7章章 高级汇编语言技术高级汇编语言技术 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计病原体侵入机体,消弱机体防御机能,破坏机体内环境的相对稳定性,且在一定部位生长繁殖,引起不同程度的病理生理过程7.4 7.4 库的使用库的使用7.4.1 库的建立库的建立 将具有将具有通用价值或经常通用价值或经常用到的源程序段编辑成一用到的源程序段编辑成一个文件,这就产生了一个汇编语言源程序库。内容为个文件,这就产生了一个汇编语言源程序库。内容为宏定义的源程序库称为宏库。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁