下载此文档

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


文档分类:IT计算机 | 页数:约69页 举报非法文档有奖
1/69
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/69 下载此文档
文档列表 文档介绍
第8章   汇编语言高级编程技术
1
宏指令
宏指令库
重复伪指令
条件伪指令
2
宏指令
在高级汇编语言技术中,一段共用语句序列除了可以设计成子程序外,还可以设计成宏指令的形式。
宏与子程序类似,首先在源程序中定义一个宏,后面在需要时就可以调用它,并允许传递多个参数。
正确灵活使用宏,可以缩短源程序的长度,扩充指令的功能,使源程序更清晰、简洁,有利于阅读、修改与调试,从而提高编程效率。
3
一、宏定义、宏调用、宏扩展
宏指令是源程序中一段有独立功能的程序代码,由用户使用宏定义伪指令定义。

宏定义伪指令伪指令格式:
宏指令名 MACRO [形式参数表]
…;宏指令体
ENDM
宏指令名由用户自起,注意ENDM前没有宏指令名。形式参数表给出了宏定义中所用到的形式参数,形式参数之间用逗号隔开。宏指令体可以由伪指令、指令、甚至于宏指令组成。
4

宏指令一经定义,就可以在程序中调用它,这被称为宏调用。
宏调用格式:宏指令名[实参数表]
实参数表给出了宏调用中要用到的实参数,实参数之间用逗号隔开,实参数应和形式参数的顺序、类型一致。
5

当源程序被汇编时,汇编程序对每个宏调用进行宏扩展。宏扩展:
宏定义体替换宏指令名
实参数替换形式参数
原则上,实参数个数应和形式参数个数相等,但汇编程序允许它们不等
若实参数个数大于形式参数个数,在替换时多余的实参数不予考虑
若实参数个数小于形式参数个数,则多余的形式参数作为空(字符)或零(数字)处理
应保证用实参数替换形式参数后,所展开的是有效的汇编语句,否则汇编程序会提示错误。
6
、宏调用、宏扩展
;宏定义
INCHAR MACRO
MOV AH,1
INT 21H ;输入的字符在AL
ENDM
;宏调用
INCHAR
;宏调用
当汇编程序汇编到宏指令INCHAR时对其扩展为:
1 MOV AH,1
1 INT 21H
7
由于宏调用是在宏扩展时替换,一条宏指令在程序中被调用几次,经汇编后其源代码就会在程序中出现几次,而不是像子程序调用那样把控制转移到子程序、执行完后再返回。因此使用宏指令仅仅是减轻了程序设计人员的劳动量,并不能缩短目标码的长度。
8
二、设计宏指令时应注意的问题
宏指令也像子程序那样可以被多次调用或被多个程序共享,设计时需注意:

在宏指令开头说明功能、调用参数和返回参数。在设计宏指令库时尤其要注意。

在宏指令开头及结束处保存和恢复将要用到的寄存器内容,使用PUSH保存、POP恢复。

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

第八章-汇编语言高级编程技术 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数69
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小305 KB
  • 时间2017-12-02