我有一个指向从C函数接收的矩阵的指针,我需要填充从同一C函数接收的另一个数组,并且需要用矩阵的每一列的总和填充它。问题在于,填充数组后,它会返回C函数,并在尝试打印数组时导致打印无关的数字(可能是地址),而不是实际的列总和。
这是C函数的代码:
.MODEL SMALL
.DATA
SUM DW ?
I DW ?
J DW ?
K DW ?
.CODE
PUBLIC _sum_col
_sum_col PROC NEAR
PUSH BP
MOV BP,SP
PUSH SI
PUSH DI
MOV I,0
MOV J,0
MOV K,0
MOV CX,[BP+6] ; CX = m
MOV BX,[BP+4] ; BX = n
MOV SI,[BP+8] ; SI = matrix
MOV DI,[BP+12] ; DI = new_col
L1:
MOV SUM,0
PUSH CX
MOV CX,BX
MOV I,0
L2:
MOV SI,[BP+8]
ADD SI,I
MOV AX,[SI]
MOV SI,AX
ADD SI,J
MOV AX,[SI]
ADD SUM,AX
ADD I,2
LOOP L2
MOV AX,SUM
ADD DI,K
MOV [DI],AX
ADD J,4
ADD K,4
POP CX
LOOP L1
POP DI
POP SI
POP BP
RET
_sum_col ENDP
END
这是汇编代码:
{{1}}
有人可以告诉我我哪里出问题了吗?