设置一个ARM汇编使用(GNU)使用c中的函数实现两数组对应位相乘后进行累加,回答详细可随意加分,如下程序:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置一个ARM汇编使用(GNU)使用c中的函数实现两数组对应位相乘后进行累加,回答详细可随意加分,如下程序:相关的知识,希望对你有一定的参考价值。

//ARM.s
.global _start
.text
_start:

.extern g

ldr r0,=a1
stmia r0!,r4-r8
ldr r1,=a2

stmia r1!,r4-r8
BL g

.data
a1:
.long 1,2,3,4,5
a2:
.long 5,6,7,8,9

.end

return(0);
//C.c
#include <stdio.h>

int g(int a[],int b[])

int sum=0,i;
for(i=1;i<5;i++)

sum = sum + a[i]*b[i];

参考技术A for(i=1;i<5;i++)
从0开始吧追问

将第一个数赋给另一个值了,因此从第二个数开始加,关键是这个程序是不能完成功能的(不过编译),能指出错误和改正方法么?

追答

ARM 那段不会

追问

额。。。

本回答被提问者采纳
参考技术B return(0); 汇编里有这个写法么?

以上是关于设置一个ARM汇编使用(GNU)使用c中的函数实现两数组对应位相乘后进行累加,回答详细可随意加分,如下程序:的主要内容,如果未能解决你的问题,请参考以下文章

GNU ARM 汇编基础笔记

ARM汇编伪指令

arm gnu 汇编器中的 IMPORT 替代品是啥?

GNU Freestanding(Naked)C ARM交叉开发环境创建与测试

博文连载ARM编译器ARM汇编与ARM GNU汇编

GNU ARM汇编语法