【求教】汇编的数组指针怎么返回?

2019-03-26 16:30发布

如下面的数据相加的测试程序:
C源程序
BYTE* ptr;
BYTE m[10],n[10],sum[10];
ptr = add(m,n,10,sum);//想要指针指向计算结构sum数组的首地址!
汇编:
loop:
    LDB  .D1T1  *A4++[1], A_m
  LDB  .D2T2  *B4++[1], B_n
 nop 4
 ADD  .L2  A_m, B_n, B_sum
 STB .D2 B_sum, *B6++[1]
 [A_loopcount] BDEC .S2 loop, A_loopcount
 NOP 5
*======loop end ======*
 B .S2 B3   ;return
 MV .S1 B6, A4 ;return 1
 NOP 4 由于A4返回int型,所以如上程序会报错int不能被赋值到BYTE*中
请问如果想要指针指向计算结构sum数组的首地址,如上汇编需怎么返回,谢谢!!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
breeze505
1楼-- · 2019-03-27 00:03
 精彩回答 2  元偷偷看……
carrotchen
2楼-- · 2019-03-27 01:15
< loop:
    LDB  .D1T1  *A4++[1], A_m
  LDB  .D2T2  *B4++[1], B_n
nop 4
ADD  .L2  A_m, B_n, B_sum
STB .D2 B_sum, *B6++[1]  ; <= 循环结束时B6指向sum数组的结尾,并不是数组头。需在循环前先备份B6的值。
[A_loopcount] BDEC .S2 loop, A_loopcount
NOP 5
*======loop end ======*
B .S2 B3   ;return
MV .S1 B6, A4 ;return 1 <= 将备份的sum数组首地址赋给A4
NOP 4

C在调用汇编前先声明extern BYTE * add(BYTE  *, BYTE *, int ,BYTE*);

一周热门 更多>