CORTEX-M0汇编问题
本帖最后由 garyv 于 2012-08-31 13:25 编辑如下,ms延时函数,void mdelay(uint32_t ms),MDK-ARM编译器
实现方式1: ldr r1, =10000
muls r0, r1, r0
next
cmp r0, #0
beq back
subs r0, r0, #1
b next
back
mov r0, lr
bx r0实现方式2: push {r0, r1, lr}
ldr r1, =10000
muls r0, r1, r0
next
cmp r0, #0
beq back
subs r0, r0, #1
b next
back
pop {r0, r1, pc}这2中实现方式就是函数进入和退出时stack处理不同,但发现调用该函数mdelay(1000),差异很大,方式2产生的延时大概是方式1的2倍!
还没找到原因。
页:
[1]