第7单元 高级汇编语言技术.pptVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7单元 高级汇编语言技术

* * ? 宏汇编 ? 重复汇编 ? 条件汇编 第七章 高级汇编语言技术 难重点 宏调用的优点 宏调用和子程序调用工作方式的差别   虚参与实元   哑元表中的变元取值的多样性   操作符   %操作符   LOCAL伪操作解决宏定义体中的符号问题   宏定义的嵌套、递归   重复汇编   不定重复汇编   条件汇编中的多种条件   高级语言结构中的几种汇编形式 1. 宏汇编 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次 使用的功能用一条宏指令来代替。 汇编语言程序 指令 伪指令(伪操作) 宏指令 优:模块化 省内存 缺:开销大 宏定义: Q macro x,y … endm 主程序: … Q a, b … Q c, d … Q e, f … 目标程序: … … … … … … 优:参数传送简单,执行效率高 缺:占用内存空间大 主程序: … CALL ---- … CALL ---- … CALL ---- … 子程序: … … … RET 宏展开:汇编程序把宏调用展开 宏定义体 复制到宏指令位置,实参代虚参 LOCAL中的标号 ??0000~??ffff 宏定义: macro_name MACRO [哑元表] ; 形参/虚参 [LOCAL 标号表] …… …… ; 宏定义体 ENDM 宏调用: (必须先定义后调用) macro_name [实元表] ; 实参 例:保存寄存器 宏展开: 1 push ax 1 push bx 1 push cx 1 push dx 1 push si 1 push di 宏定义: savereg MACRO push ax push bx push cx push dx push si push di ENDM 宏调用:? savereg 例:两个字相乘 宏定义: multiply MACRO opr1,opr2,result push dx push ax mov ax,opr1 imul opr2 mov result,ax pop ax pop dx ENDM 宏调用: ?multiply cx,var,xyz[bx] 宏展开: 1 push dx 1 push ax 1 mov ax,cx 1 imul var 1 mov xyz[bx],ax 1 pop ax 1 pop dx multiply cL,9,xyz[bx];XYZ为字节变量 × 实元取代哑元时,实元和哑元应该一一对应,即第一个实元取代第一个哑元,第二个实元取代第二个哑元……依次类推。一般说来,实元的个数和哑元的个数相等,但汇编程序并不要求它们必须相等。若实元个数大于哑元个数,则多余的实元不予考虑;若实元个数小于哑元个数,则多余的哑元作空处理。 例:求绝对值 宏定义: absol MACRO oper LOCAL next cmp oper,0 jge next neg oper next: ENDM 宏调用: …… absol var …… absol bx …… 宏展开: …… 1 cmp var,0 1 jge ??0000 1 neg var 1 ??0000: …… …… 1 cmp bx,0 1 jge ??0001 1 neg bx 1 ??0001: …… 注意: LOCAL伪操作必须是宏定义中的第一条语句,且在它前面(即absol MACRO oper 与LOCAL next之间不能加注释。 宏汇编操作符: ;; % 符号1 符号2 宏展开时,合并前后两个符号形成一个符号。 ;; 注释

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档