在掌握基本的汇编语言程序设计方法之后,进一步学习如何提...课件.ppt

在掌握基本的汇编语言程序设计方法之后,进一步学习如何提...课件.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例: ??? IRP??? X,1,2,3,4,5,6,7,8,9,10 ??? DB??? X ??? ENDM 汇编后得: ? 1???? DB??? 1 ? 1???? DB??? 2 ?????? ... ? 1???? DB??? 10 精品 例: ????IRP??? REG,AX,BX,CX,DX ???? PUSH?? REG ???? ENDM 汇编后得: ??? 1??? PUSH??? AX ??? 1??? PUSH??? BX ??? 1??? PUSH??? CX ??? 1??? PUSH??? DX 精品 (2)IRPC伪操作 格式是: ??? IRPC???? 形参,字符串(或字符串) ???? ...????? (重复块) ??? ENDM IRPC和IRP类似,但自变量表必须是字符串.重复次数由字符串中的字符个数确定,每次重复用字符串中的下一个字符取代重复块中的形参. 精品 例: ???? IRPC????? X,0 1 2 3 4 5 6 7 ???? DB??????? X+1 ???? ENDM 汇编后得: ?? 1? DB??? 1 ?? 1? DB??? 2 ???? ... ?? 1 ? DB??? 8 精品 例: ???? IRPC????? K,A B C D ???? PUSH????? KX ENDM 汇编后展开形成: ? 1??? PUSH?? AX ? 1??? PUSH?? BX ? 1??? PUSH?? CX ? 1??? PUSH?? DX 精品 MAINBEGING MACRO ;;定义名为MAINBEGIN的宏,无参数 MOV AX,@DATA ;;宏定义体 MOV DS,AX ENDM ;;宏定义结束 MAINEND MACRO RETNUM ;;带有形参RETNUM MOV AL,RETNUM ;;宏定义中使用参数 MOV AH,4CH INT 21H ENDM 精品 MULTIPLY MACRO OPR1,OPR2,RESULT             ;;定义名具有三个参数的宏 PUSH DX ;;宏定义体 PUSH AX MOV AX,OPR1 IMUL OPR2 MOV RESULT,AX POP AX POP DX ENDM ;;宏定义结束 精品 宏名 [实参表] 宏调用   经宏定义定义后的宏指令可以在源程序中调用,这种对宏指令的调用称为宏调用。其格式为:  宏调用的实质是在汇编过程中进行宏展开 精品 例: START: MAINBEGIN ;宏调用,建立DS内容 MULTIPLY 240,BX,SAVE ;宏调用,显示字符串 MAINEND 0 ;宏调用,返回DOS END START 宏调用的实质是在汇编过程中进行宏展开 精品 宏展开 在汇编时,用宏定义体的代码序列取代源程序中的宏指令名,而且用实际参数取代形式参数的过程。 宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体取代源程序的宏指令,同时用位置匹配的实参对形参进行取代,而且在取代时,实参与形参是一一对应的。 精品 START: 1 MOV AX,@DATA ;宏指令MAINBEGIN的宏展开 1 MOV DS,AX 1 PUSH DX ;宏指令MULTIPLY的宏展开 1 PUSH AX 1 MOV AX,OPR1 1 IMUL OPR2 1 MOV RESULT,AX 1 POP AX 1 POP DX 1 MOV AL,0   ;宏指令MAINEND 0 的宏展开 1 MOV AH,4CH 1 INT 21H END START 精品 宏的参数: 宏的参数使用非常灵活 宏定义时, 可以无参数,例如:MAINBEGIN 可以带有一个参数,例如:MAINEND 也可以具有多个参数;例如:MULTIPLY 参数可以是常数、变量、存储单元、指令(操作码)或它们的一部分,也可以是表达式; 宏定义体

文档评论(0)

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

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

1亿VIP精品文档

相关文档