10讲:宏汇编、C语言调用汇编课件.ppt

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

第十讲 宏汇编 3-7 宏汇编与条件汇编 一、宏定义、宏调用和宏扩展 宏定义:将一段反复使用的汇编指令定义 为宏(MACRO)。 例:SHIFT MACRO ;宏定义起始 宏名 MOV CL, 4 SAL AL, CL ENDM ;宏定义结束 宏调用:用宏名(也称宏指令)。 宏扩展:汇编时,将宏指令替换成宏体。 例:源程序 汇编时 … … SHIFT MOV CL, 4 … SAL AL, CL SHIFT … MOV CA, 4 SAL AL, CL 注:与子程序一样,可以简化源程序书写, 但有区别. 源程序:主程序 子程序 … SHIFT PROC CALL SHIFT MOV CL, 4 … SAL AL, CL CALL SHIFT RET 宏定义与子程序的区别: 1.子程序在运行时起作用;而宏定义在汇编时起作用. 2.相同程序,子程序省目标码,而宏定义执行速度快. 宏定义可以带参数: 例: SHIFT1 MACRO X,Y MOV CL, X SAL Y,CL ENDM 调用时: SHIFT1 2, BX;BX算术左移2位. 例: SHIFT2 MACRO X,Y,Z MOV CL, X SZ Y,CL ENDM 调用时: SHIFT2 2, SI,HR;SI逻辑右移2位 消除宏定义:PURGE 宏名 [,…] 、LOCAL伪指令 汇编时定义变量、标号,并保证唯一。 格式:LOCAL 参量1,参量2 , … 例: CHANGE MACRO;16进制变ASCLL LOCAL P1 CMP AL,10 JL P1 ADD AL, ‘A’- ‘0’-10 P1: ADD AL, ‘0’ ENDM 若两次调用CHANGE,则宏展开为: CMP AL,10 JL ??0000 ADD AL, ‘A’-‘0’-10 ??0000: ADD AL ‘0’ … CMP AL,10 JL ??0001 ADD AL, ‘A’-‘0’-10 ??0001: ADD AL ‘0’ 避免标号重复. 三、重复伪指令 1.REPT 格式:REPT 表达式(重复次数) … ;指令体 ENDM 例: X=0 REPT 10 X=X+1 DB X ENDM 把1—10分配给10个连续M单元. 2.IRP 格式: IRP 形参 重复参数表 … ;指令体 ENDM 例: IRP X 1,2,3,4,5,6,7,8,9,10 DB X ENDM 将1~10分配给10个连续M单元. 3.IRPC 格式: IRPC 形参, 字符串 … ;指令体 ENDM 重复次数为字符串个数. 例: IRPC X, 0123456789 DB X+1 ENDM 将1~10分配给10个连续M单元. 四、条件汇编 有条件地将源程序进行汇编。 格式: IF XX ;条件 … [ELSE]; … ENDIF 条件伪指令见表3-4 3-8 外部引用与全局说明 模块化设计需求. 一、EXTRN和PUBLIC伪指令 定义模块间的过程调用和变量引用的相关属性 格式:EXTRN 名字:类型 [,…] 功能:指示在本模块中使用该名字,但这名字的定义是在要连接的其他模块中定义的. 注:1.名字指过程名,

文档评论(0)

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

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

1亿VIP精品文档

相关文档