loop指令 c语言,arm汇编loop指令

满意答案

00e27ab806e4881f8254fe7ae8741834.png

foy23q

2018.11.16

00e27ab806e4881f8254fe7ae8741834.png

采纳率:59%    等级:9

已帮助:3714人

int GetSum(int val) //使用汇编求1+2+3+...+val的值 { int sum = 0; __asm__ __volatile__( "MOV R5 , %1\n"//val放入寄存器r5 "MOV R1 , #0\n" //sum = 0 "MOV R2 , #1\n"//i = 1 "LOOP:\n" " ADD R1 , R1 ,R2\n" //sum = sum + i " ADD R2 , R2 ,#1\n" //i++ " CMP R5 , R2\n" //判断 i 是否等于val if(i==val) " BEQ END\n" //若相等 跳转至END处 break " B LOOP\n" //若不相等 跳转至LOOP处进入下次循环 else continue "END:\n" "MOV %0 , R1\n" //sum = R1 :"=r"(sum)//输出 :"r"(val)//输入 :"memory" ); return sum; } 随便写了个求和的例子 其余的循环大同小异 不懂可以继续探讨 运行之前请交叉编译然后在ARM平台上运行追问: 大神,你写的有点乱,我这个初学者看的头皮发麻啊

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值