范德萨发而为
全部博文(392)
分类:
2009-12-12 21:16:12
7.50
.macro
本命令.macro和.endm命令允许您定义宏来生成汇编输出。例如,下面的语句定义了一个宏
sum,这个宏把一个数字序列放入内存。
.macro
sum from=0, to=5
.long \from
.if \to-\from
sum
"(\from+1)",\to
.endif
.endm
使用上述定义,'SUM
0,5'语句就等于输入下面的汇编语句:
.long
0
.long 1
.long 2
.long 3
.long 4
.long 5
.macro
macname
.macro macname macargs
...
开始定义一个名为macname的宏。如果您的宏需要使用参数,则在宏的名字后指定他们的名
字,参数之间用逗号或空格分隔。您可以为任意的参数提供参数的缺省值,只需要在参数
后使用“=deflt”,。例如,下列都是合法的宏定义语句:
.macro
comm
定义一个名为comm宏,不使用参数。
.macro
plus1 p, p1
.macro plus1 p
p1
两个语句都声明要定义一个名为plus1的宏,这个宏需要两个参数,在宏定义体内,使用'
\p'或'\p1'来引用参数的值。
.macro
reserve_str p1=0
p2
声明要定义一个名为reserve_str的宏,使用两个参数。第一个参数有缺省值,第二个没有
缺省值。宏定义完成后,您可以通过‘reserve_str
a, b’(宏体中‘\p1’引用a的值,‘
\p2’引用b值)或通过‘reserve_str
,b’(‘\p1’使用缺省值,在此为‘0’,‘\p2’引
用b的值)来调用这个宏。
当调用一个宏时,您既可以通过位置指定参数值,也可以通过关键字指定参数值。例如,
‘sum
9,17’和‘sum to=17,
from=9’是等价的。
.endm
标志宏定义体的结束。
.exitm
提前从当前宏定义体中退出。
\@
这个伪变量其实是as维护的一个计数器,用来统计执行了多少个宏。您可以通过使用\
@把这个数字复制到您的输出中,但仅限于在宏定义体中使用。
chinaunix网友2009-12-18 23:54:10
这位兄弟,最近部门在针对合适人选内部推荐,这次机会较好,真诚希望你或者这里的朋友能关注下: ------------------------------------------------------------------------------------------- 全球TOP3通信公司创新项目招募人才(机会较好,待遇从优) 地点:上海 包括但不限于以下方面:(1)嵌入式技术和linux开发(2)编译环境开发(3)应用和业务软件开发(4)浏览器和互联网技术(5)媒体平台:媒体技术和算法(6)通信协议:传输,组网以及协议开发等 招聘范围:中高级技术专家,技术带头人,3年以上工作经验 待遇:从优,只要您有实力,待遇一切可谈 关于我们:提供一个良好的技术和开发环境,提供优越的个人发展空间通道以及完善的培训制度,个人配股激励计划。 若有任何疑问或者兴趣,欢迎邮件:BlankHt@163.com 静候您或者您的朋友回音。