Chinaunix
标题:
汇编宏的使用疑惑?
[打印本页]
作者:
jwwzhh
时间:
2011-09-28 11:46
标题:
汇编宏的使用疑惑?
arch/arm/lib/copy_from_user.S中定义了一个宏:
.macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
stmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8}
.endm
arch/arm/lib/copy_template.S中使用这个宏:
str8w r0, r3, r4, r5, r6, r7, r8, ip, lr, abort=20f 这个能理解的,相应的对上就可以了。
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f 这个不能理解,怎么多了个‘,’号啊?
希望大家给个意见,解释解释!
作者:
qtdszws
时间:
2011-09-28 15:22
传空参数,以空代替\reg8
作者:
jwwzhh
时间:
2011-09-28 15:50
先谢谢楼上的回答。不过你仔细看一下,\reg8使用的是ip寄存器,你会发现它参数太多了。
作者:
jwwzhh
时间:
2011-09-29 12:32
自己顶一下。专家门出来解答一下啊。
作者:
liu090
时间:
2011-09-29 15:01
从反汇编来看
str8w r0, r3, r4, r5, r6, r7, r8, ip, lr, abort=20f
STMIA R0!, {R3-R8,R12,LR}
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
STMIA R0!, {R3-R9,R12}
如果改成
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, abort=19f
结果一样是:
STMIA R0!, {R3-R9,R12}
个人认为,写下面这句时作者用了ctrl +c ,然后
str8w r0, r3, r4, r5, r6, r7, r8, ip, lr, abort=20f
然后
str8w r0, r3, r4, r5, r6, r7, r8, ip, , abort=20f
然后
str8w r0, r3, r4, r5, r6, r7, r8,r9, ip, , abort=20f
然后
str8w r0, r3, r4, r5, r6, r7, r8,r9, ip, , abort=19f
所以就变成这样了,呵呵
作者:
jwwzhh
时间:
2011-09-29 18:44
感谢楼上的解答,真是专家,非常非常感谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2