汇编网首页登录博客注册
fishboy的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态

[2007-10-12 19:08] 推荐博文 汇编中的宏指令

宏指令能够在程序中扩展成代码,这对一些重复性比较高的代码段,能起到简化源程序的作用。
汇编中使用宏指令的过程如下:
1.定义。
宏指令的定义格式为:
   宏指令名 macro [形参1,形参2...]
       ......
       ......(宏内容)
        endm
2.宏指令的调用。
宏指令的调用格式:
    宏指令名 [形参1,形参2....]
3.宏指令的展开。
在代码中,调用宏指令的地方,会在程序编译的时候根据给定参数自动替换成宏指令的内容。
需要注意一下几点:
(1)宏指令的参数可有可无。
(2)宏指令的定义必须在调用之前。
(3)宏指令的名字遵循标识符的命名规范。

下面就用一个小小的例子来看一下宏指令在汇编中的应用。
assume cs:code
;定义一个宏指令,利用R1交换R2,R3的值
swap macro R1,R2,R3
    mov R1,R2
    mov R2,R3
    mov R3,R1
  endm

code segment
start:
mov bx , 1234H
mov dx , 5678H
swap ax, bx , dx ;调用宏指令
mov ax , 4C00H
int 21h
code ends
end start
在debug下看一下段代码在运行的时候实际是什么样子的,可以看到
......
mov dx , 5678

mov ax, bx
mov bx ,dx
mov dx ,ax

mov ax , 4c00
........
很直观的就能看到宏的使用过程了,他将调用宏指令的地方,都替换成了相应的宏内容了,当然,还要给定正确的参数。
    这样,我们对汇编中宏指令的用法和作用也有了一个初步的了解了。在应用中,灵活使用宏会大大简化重复代码的编写,也是你的源代码成功的“瘦身”。   
=====================================================
0o别让理想压弯了脊背o0
评论次数(7)  |  浏览次数(2216)  |  类型(技术改变未来) |  收藏此文  | 

[  fishboy   发表于  2007-10-15 09:38  ]

也没人鼓励,自己顶一下!

[  Wednesday   发表于  2007-10-15 13:38  ]

有意思!
很好,收藏了。

[  游客   发表于  2007-10-15 18:38  ]

顶顶
好阿~~

[  huibian   发表于  2007-10-17 09:10  ]

学习了;-)
久违的c的宏定义啊~

[  woshihuo12   发表于  2007-12-06 16:11  ]

我顶你!!!

[  lz1232008   发表于  2008-06-20 08:55  ]

[  yjll   发表于  2008-06-26 13:31  ]

顶!

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码