RSS

汇编宏指令的格式

来源: 作者: 时间:2007-06-29 Tag: 点击:

08-27-96

;%T Symbol Name Type Value

ABC . . . . . . . . . . . . . . M 0000

JK. . . . . . . . . . . . . . . M 0000

;%Z

00 Errors (0000)

在列表文件中,在调用宏指令处,实参数被充填到宏指令的形参处,并把宏指令体扩充到程序中形成代码。在这个例子中实参不仅代替了指令中的参数部分,而且还能代替整个指令。文件中最前列带“+”的语句为引用宏指令扩展的部分。宏指令被引用时,参数表上实参表应与所替代的形参相对应。在表中出现的参数必须用逗号隔开,汇编程序取逗号之间或与第一个逗号之间,或最后一个逗号与行尾之间的任何字符作为实际参数。这样,可以使用多个符号,甚至一个整条指令作为一个参数,只要在数中没有逗号就行。一个逗号不能作为一个参数的一部分被传递。汇编程序将滤去每个参数的前面和后面的空格,仅仅保留第一个到最后一个可打印字符。

此外,宏指令的实际参数表可以不与形参表完全匹配,即实际参数的数量可以多于或少于形参表中的形参个数。当参数空缺时,相应的形参在宏扩展时被取消,如果实际参数比形参多,则多余的实际参数将被忽略。最后一个在表中间的参数可以通过在参数表中间放两个逗号来赋空值。参见下面的例子。

ABC MACRO P1,P2,P3

MOV A,P1

MOV R4,P2

P3

DEC R5

ENDM

JK MACRO P1,X5,OPC1,ARG1,ARG2

INC X5

MOV A,P1

OPC1 ARG1,ARG2

ENDM

NOP

JK #33H,R3,NOP

SWAP A

NOP

JK R4,R2,ADDC,A,@R1,#66H

NOP

JK #40H,R4,,DEC R2

NOP

END

宏指令的另一个特点是形参可以被用作一个标号,如果一个形参被用作一个标号,当引用宏指令时,实参将成为标号。这就要求每次宏指令调用时,该实参不能相同。以避免标号重复定义错误。例:

The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 1

08-27-96

ABC MACRO P1,P2,P3

MOV A,P1

MOV R4,P2

P3

DEC R5

ENDM

JK MACRO P1,X5,OPC1,ARG1,ARG2

INC X5

MOV A,P1

OPC1 ARG1,ARG2

ENDM

0000 00 NOP

0001 JK #33H,R3,NOP

+0001 0B INC R3

+0002 7433 MOV A,#33H

+0004 00 NOP ,

0005 C4 SWAP A

0006 00 NOP

0007 JK R4,R2,ADDC,A,@R1,#66H

+0007 0A INC R2

+0008 EC MOV A,R4

+0009 37 ADDC A,@R1

000A 00 NOP

000B JK #40H,R4,,DEC R2

+000B 0C INC R4

+000C 7440 MOV A,#40H

+000E 1A DEC R2,

000F 00 NOP

0000 END

The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 2

08-27-96

;%T Symbol Name Type Value

ABC . . . . . . . . . . . . . . M 0B0D

JK. . . . . . . . . . . . . . . M 0000

;%Z

00 Errors (0000)

若在宏指信中使用标号,由于这些标号不是形参,所以不会被实参所替代。这样,在程序中多次引用是否会出现标号重复呢?在作宏汇编时,汇编程序会在所有标号尾部增加一个唯 一的四位数,以使多次引用时标号不会重复。例:

LMAC MACRO P1,P2,L1

ANL A,P1

JZ L1

ORL A,P2

L1: MOV @R1,A

INC R1

ENDM

MOV R1,#2AH

MOV A,#65H

LMAC R3,#0F0H,R3ANDA0

MOV A,#23H

LMAC R5,#07H,R5ANDA0

NOP

END

程序中有二个标号MATCH1及NOMATCH,宏指令被二次引用,经汇编后其列表文件如下:

The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 1

08-27-96
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册