数据定义伪操作
.byte
.space cnt 0x01 分配 cnt个字节,初始化为0x01
.short
.long/.word
.quad
.float
.string/.asciz/.ascii .ascii "abcd\0"
注: .ascii 需要加 '\0',其它不需要
汇编控制伪操作
.if logical expression
...
.else
...
.endif
.rep cnt
...
.endr
重复执行cnt次
#
C和汇编的混合编程
1. 汇编调用C
b main
2. C调用汇编
@C文件
extern void FUNC(void);
int main(){
int a = 6;
FUNC();
a = 12;
}
@asm 文件
FUNC:
mov r1, #1
mov pc, lr;
3. C内联汇编
int main()
{
int a =1;
asm
{
“mov r1, #1\n”
“mov r2, #2\n”
};
a = 2;
}
注意:C 和汇编互相调用要符合ATPCS/AAPCS 协议