汇编语言—第7章.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言—第7章

第7章 高级汇编语言技术 ;7.1 宏汇编 ;4. 说明 在参数的类型与顺序应与宏定义时的形式参数一致。 宏展开时,若实参数的个数多于形式参数,则忽略多余的实在参数;若实参数的个数少于形式参数,则多余的形式参数为空。 宏定义只是告诉MASM用一个名字来表示一段语句序列,其本身不被汇编。 宏指令的参数非常灵活,可以出现在指令的操作数或操作码部分,MASM在宏展开时对参数进行文本替换。 宏定义可以写在程序的任何地方,但习惯上总是把宏定义写在程序的最前面。; 【例】参照汇编程序的处理方法,对下面程序中的宏进行展开。 back = 4CH dosint EQU 21H dispch MACRO MOV AH,2 MOV DL, * INT 21H ENDM ;code SEGMENT ASSUME CS:code main: dispch dispch MOV AH,back INT dosint code ENDS END main;【解】宏展开后的结果是: + MOV AH,2 + MOV DL,* + INT 21H + MOV AH,2 + MOV DL,* + INT 21H MOV AH,4CH INT 21H;7.1.2 与宏有关的伪指令 ;【例】设有如下宏定义: sum MACRO a,b LOCAL next MOV CX,a LEA BX,b XOR AX,AX next:ADD AX,[BX] ADD BX,2 LOOP next ENDM 并已知buf1和buf2是已定义的两个变量,展开下面的宏调用: sum 5,buf1 sum 7,buf2;【解】宏展开结果是: + MOV CX,5 + LEA BX,buf1 + XOR AX,AX + ??0000:ADD AX,[BX] + ADD BX,2 + LOOP ??0000 + MOV CX,7 + LEA BX,buf2 + XOR AX,AX + ??0001:ADD AX,[BX] + ADD BX,2 + LOOP ??0001;7.1.3 宏操作符;7.1.3 宏操作符;7.1.3 宏操作符 ;7.1.3 宏操作符%;7.1.3 宏操作符!;7.1.3 宏的嵌套定义; mm2 MACRO a,b,c mm1 a MOV BX,AX mm1 b ADD AX,BX MOV c,AX ENDM 调用: mm2 v1,v2,v3;【解】展开mm2后得到: 1 mm1 v1 1 MOV BX,AX 1 mm1 v2 1 ADD AX,BX 1 MOV v3,AX 其中还含有宏调用,再把两个mm1展开后可得到如下结果: 2 MOV AX,v1 2 MUL AX 1 MOV BX,AX 2 MOV AX,v2 2 MUL AX 1 ADD AX,BX 1 MOV v3,AX ;7.2.4 宏指令与过程的区别

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档