+ -
当前位置:首页 → 问答吧 → 【虎彡】关于嵌套的宏展开~呼叫大叔大哥~迷糊

【虎彡】关于嵌套的宏展开~呼叫大叔大哥~迷糊

时间:2010-12-15

来源:互联网


DEFMAC MACRO MACNAM,OPERATOR
  MACNAM MACRO X,Y,Z
  PUSH AX
  MOV AX,X
  OPERATOR AX,Y
  POP Z,AX
  POP AX
  ENDM
 ENDM
帮我展开下!我一见嵌套、多层循环之类的脑袋就疼~


看到条件汇编IF了 头更疼了~~~

作者: znxllyuan   发布时间: 2010-12-15

[color=#FF0000][/color]这是用来定义“三个数进行某种操作的宏”的一个宏。如宏调用
DEFMAC Q1,ADD
则编译时就被展开为
1 Q1 MACRO X,Y,Z
1 PUSH AX
1 MOV AX,X
1 ADD AX,Y
1 MOV Z,AX ;这里应该是mov
1 POP AX
1 ENDM


DEFMAC Q2,SUB
则被展开为
1 Q2 MACRO X,Y,Z
1 PUSH AX
1 MOV AX,X
1 SUB AX,Y
1 MOV Z,AX
1 POP AX
1 ENDM

这不就相当于定义出两个宏Q1和Q2吗?
程序中再出现调用
Q1 SI,DI,BX
则被展开为
2 PUSH AX
2 MOV AX,SI
2 ADD AX,DI
2 MOV BX,AX
2 POP AX


作者: shzhfu   发布时间: 2010-12-15

引用 1 楼 shzhfu 的回复:
[color=#FF0000][/color]这是用来定义“三个数进行某种操作的宏”的一个宏。如宏调用
DEFMAC Q1,ADD
则编译时就被展开为
1 Q1 MACRO X,Y,Z
1 PUSH AX
1 MOV AX,X
1 ADD AX,Y
1 MOV Z,AX ;这里应该是mov
1 POP AX
1 ENDM


DEFMAC Q2,SUB
则被展开为
1……


如果 DEFMAC Q1,ADD
  再调用 QI VAR1,VAR2,VAR3
  才有意义?


作者: znxllyuan   发布时间: 2010-12-15