永发信息网

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

答案:4  悬赏:30  手机版
解决时间 2021-11-25 01:54
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-11-24 04:14
arm题:使用汇编完成下列C的数组赋值
最佳答案
  • 五星知识达人网友:一袍清酒付
  • 2021-11-24 05:20
注:上面那个是我作的回答,但有个 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 ;无符号数小于或等于

上面几种方法供参考
全部回答
  • 1楼网友:雾月
  • 2021-11-24 07:33
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楼网友:琴狂剑也妄
  • 2021-11-24 05:56
For(i=0;i<=R3;i++)
{
R0=R1+R2;
R0++;
R1++;
}
大概的意思就是上面的,R3里面存放的OX0a表示二进制的10。我写的语法应该不对你在看看怎么写成汇编的形式。再说了汇编分为DOS汇编和WIN32汇编的。你的看你要写成哪样的汇编了?追问谢谢,需要用ARM指令集的汇编语言编写程序,不是伪代码
  • 3楼网友:拾荒鲤
  • 2021-11-24 05:45
储到0x4000的指令存到存储器中。若存储器为大端组织,写出从存储器0x4000处加载一个字节到R2的指令执行后R2的值。
2、使用汇编完成下列C的数组赋值:
for(i=0;i<=10;i++)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯