最近刚开始接触,有个问题想请教一下各位大大们我如何在线性汇编中调用C语言中已经定义的数组 例如:int A[3]={0,1,2};B[2][3]={{0,1,2},{0,1,2},{0,1,2}}如果在线性汇编中如何定义数组并赋值(一维、二维、三维),如何调用数组针对结构体如何写成线性汇编?有没有针对线性汇编程序设计的书,现在基本都是从C6000系列的教材去看 介绍的不是很全面,求指导请给个简单示例再次谢谢各位大大们我这样写哪里有问题?编译通过但是结果不正确。。。。。。。。。。。。#include <stdio.h>#include <stdlib.h>#include <math.h>extern float dotprod(const int nx); void main(void) { int N=4,i; int sum; sum=dotprod(N); printf("OUT:%f
",sum); } 线性汇编文件 .datax .float 0x00f0, 0x1234, 0x0000, 0x0000y .float 0x1234, 0x4567, 0x0000, 0x0001 .text .global _dotprod_dotprod .cproc nx.ref _x.ref _y .reg sum1,x0,y0,prod0 .reg x1,y1 ZERO sum1 MVKL x, x1 MVKH x, x1 MVKL y, y1 MVKH y, y1loop: LDW *x1++, x0 LDW *y1++, y0 MPYSP x0, y0, prod0; ADDSP sum1, prod0, sum1 SUB nx, 1, nx [nx] B loop .return sum1 .endproc
此帖出自
小平头技术问答
LDW *x1++, x0
LDW *y1++, y0
NOP 4
MPYSP x0, y0, prod0;
NOP 1
ADDSP sum1, prod0, sum1
SUB nx, 1, nx
[nx] B loop
.return sum1
你再试下
.endproc
一周热门 更多>