线性汇编数组问题

2019-03-26 16:31发布

最近刚开始接触,有个问题想请教一下各位大大们我如何在线性汇编中调用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
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
breeze505
2019-03-26 21:19
< loop:
       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

一周热门 更多>