第八章-汇编语言高级编程技术ppt课件.ppt

第八章-汇编语言高级编程技术ppt课件.ppt

ID:58680256

大小:114.00 KB

页数:69页

时间:2020-10-05

第八章-汇编语言高级编程技术ppt课件.ppt_第1页
第八章-汇编语言高级编程技术ppt课件.ppt_第2页
第八章-汇编语言高级编程技术ppt课件.ppt_第3页
第八章-汇编语言高级编程技术ppt课件.ppt_第4页
第八章-汇编语言高级编程技术ppt课件.ppt_第5页
资源描述:

《第八章-汇编语言高级编程技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章   汇编语言高级编程技术17.1宏指令7.2宏指令库7.3重复伪指令7.4条件伪指令27.1宏指令在高级汇编语言技术中,一段共用语句序列除了可以设计成子程序外,还可以设计成宏指令的形式。宏与子程序类似,首先在源程序中定义一个宏,后面在需要时就可以调用它,并允许传递多个参数。正确灵活使用宏,可以缩短源程序的长度,扩充指令的功能,使源程序更清晰、简洁,有利于阅读、修改与调试,从而提高编程效率。3一、宏定义、宏调用、宏扩展宏指令是源程序中一段有独立功能的程序代码,由用户使用宏定义伪指令定义。1.宏定义宏

2、定义伪指令伪指令格式:宏指令名MACRO[形式参数表]…;宏指令体ENDM宏指令名由用户自起,注意ENDM前没有宏指令名。形式参数表给出了宏定义中所用到的形式参数,形式参数之间用逗号隔开。宏指令体可以由伪指令、指令、甚至于宏指令组成。42.宏调用宏指令一经定义,就可以在程序中调用它,这被称为宏调用。宏调用格式:宏指令名[实参数表]实参数表给出了宏调用中要用到的实参数,实参数之间用逗号隔开,实参数应和形式参数的顺序、类型一致。53.宏扩展当源程序被汇编时,汇编程序对每个宏调用进行宏扩展。宏扩展:宏定义体替换

3、宏指令名实参数替换形式参数原则上,实参数个数应和形式参数个数相等,但汇编程序允许它们不等若实参数个数大于形式参数个数,在替换时多余的实参数不予考虑若实参数个数小于形式参数个数,则多余的形式参数作为空(字符)或零(数字)处理应保证用实参数替换形式参数后,所展开的是有效的汇编语句,否则汇编程序会提示错误。6例1.输入一个字符的宏定义、宏调用、宏扩展;宏定义INCHARMACROMOVAH,1INT21H;输入的字符在ALENDM;宏调用INCHAR;宏调用当汇编程序汇编到宏指令INCHAR时对其扩展为:1MO

4、VAH,11INT21H7由于宏调用是在宏扩展时替换,一条宏指令在程序中被调用几次,经汇编后其源代码就会在程序中出现几次,而不是像子程序调用那样把控制转移到子程序、执行完后再返回。因此使用宏指令仅仅是减轻了程序设计人员的劳动量,并不能缩短目标码的长度。8二、设计宏指令时应注意的问题宏指令也像子程序那样可以被多次调用或被多个程序共享,设计时需注意:1.宏指令说明在宏指令开头说明功能、调用参数和返回参数。在设计宏指令库时尤其要注意。2.寄存器保存与恢复在宏指令开头及结束处保存和恢复将要用到的寄存器内容,使用P

5、USH保存、POP恢复。3.说明局部符号若宏指令中包含标号或变量名则一定要用LOCAL伪指令说明,否则当一个程序多次调用该宏指令时会出现符号重复定义错误。9三、LOCAL伪指令格式:LOCAL局部符号表功能:对局部符号表中的每个符号,在汇编时每扩展一次便建立一个惟一的符号,形如??xxxx。以保证汇编时生成名字的惟一性。说明:xxxx的值在0000~FFFF之间。注意:LOCAL伪指令一定要是宏体中的第一个语句,即它应紧跟在宏定义的MACRO之后,中间不能插有任何其它语句(含注释语句)。10例2.定义一个

6、延时10ms宏指令delay,并且在程序中调用实现延时20ms功能。;宏定义DELAYMACROLOCALLOPMOVCX,2801LOP:LOOPLOPENDM;宏调用:DELAYDELAY;宏扩展:DELAY0009B90AF11MOVCX,2801000CE2FE1??0000:LOOP??0000DELAY000EB90AF11MOVCX,28010011E2FE1??0001:LOOP??000111四、宏指令中参数的使用形式参数使宏更通用更灵活,而在宏调用时给出实参数即可。宏指令的实参数可以是

7、常数、寄存器、变量、表达式、操作码或操作码的一部分、指令或伪指令助记符等,如此多的参数种类以及参数传递的方便性是子程序所不能比拟的。宏指令允许嵌套。12例3.定义在两个字型内存变量之间传送数据的宏指令,并调用之。MOVEMACROX,Y;X→YPUSHAXMOVAX,XMOVY,AXPOPAXENDMDATASEGMENTVAR1DW6543HVAR2DW?DATAENDSMOVEVAR1,VAR2;宏调用;宏扩展1PUSHAX1MOVAX,VAR11MOVVAR2,AX1POPAX13例4.用宏指令实现

8、清屏、设置光标、显示彩色字符及彩色字符串功能。;功能:保存寄存器DX、CX、BX、AXPUSHREGMACROPUSHDXPUSHCXPUSHBXPUSHAXENDM;功能:恢复寄存器AX、BX、CX、DXPOPREGMACROPOPAXPOPBXPOPCXPOPDXENDM14;功能:清屏CLRSCRNMACROPUSHREGMOVAH,6MOVAL,0MOVBH,1FHMOVCX,0MOVDX,184FHINT10HPOP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。