arm题:使用汇编完成下列C的数组赋值

For(i=0;i<=10;i++){a[i]=b[i]+c;}假设R0,R1分别存放了a[i],b[i]的基地址,c的值在R2中,R3中存着0x0a... For(i=0;i<=10;i++){a[i]=b[i]+c;}
假设R0,R1分别存放了a[i],b[i]的基地址,c的值在R2中,R3中存着0x0a
展开
 我来答
gjcn1234
推荐于2018-03-11 · TA获得超过133个赞
知道答主
回答量:75
采纳率:0%
帮助的人:0
展开全部
注:上面那个是我作的回答,但有个 R3 错打成 R4, 更正如下:
MOV R3, #0xA ; i^
Next
RSB R5, R3, #0xA ; i = 0,1,2...0xA
LDR R6, [R1, R5] ;b[i]
ADD R6, R6, R2 ;b[i]+c
STR R6, [R0, R5] ;a[i]=b[i]+c
SUB R3, R3, #0x1
CMP R3, #0x0
BNE Next

============================================
如果你不强调 "R3中存着0x0a", 也可以是这样的:
MOV R3, #0x0 ;i = 0,1,2,3...
Next
LDR R6, [R1, R3] ;b[i]
ADD R6, R6, R2 ;b[i]+c
STR R6, [R0, R3] ;a[i]=b[i]+c
ADD R3, R3, #0x1
CMP R3, #0x0A
BLS Next ;无符号数小于或等于

============================================
如果你一定强调 "R3中存着0x0a", 也可以是这样的:
MOV R4, #0x0 ;i = 0,1,2,3...
Next
LDR R6, [R1, R4] ;b[i]
ADD R6, R6, R2 ;b[i]+c
STR R6, [R0, R4] ;a[i]=b[i]+c
ADD R4, R4, #0x1
CMP R4, R3
BLS Next ;无符号数小于或等于

上面几种方法供参考
纯金太阳
2011-03-31 · TA获得超过374个赞
知道小有建树答主
回答量:736
采纳率:100%
帮助的人:330万
展开全部
储到0x4000的指令存到存储器中。若存储器为大端组织,写出从存储器0x4000处加载一个字节到R2的指令执行后R2的值。
2、使用汇编完成下列C的数组赋值:
for(i=0;i<=10;i++)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L木木衫
2011-03-30
知道答主
回答量:8
采纳率:0%
帮助的人:9.6万
展开全部
For(i=0;i<=R3;i++)
{
R0=R1+R2;
R0++;
R1++;
}
大概的意思就是上面的,R3里面存放的OX0a表示二进制的10。我写的语法应该不对你在看看怎么写成汇编的形式。再说了汇编分为DOS汇编和WIN32汇编的。你的看你要写成哪样的汇编了?
追问
谢谢,需要用ARM指令集的汇编语言编写程序,不是伪代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-03
展开全部
MOV R3, #0xA ; i^
Next
RSB R5, R4, #0x10 ; i = 0,1,2...0xA
LDR R6, [R1, R5] ;b[i]
ADD R6, R6, R2 ;b[i]+c
STR R6, [R0, R5] ;a[i]=b[i]+c
SUB R3, R3, #0x1
CMP R3, #0x0
BNE Next
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式