2 つの異なる float 配列の平均を取得する方法について、現在本当に混乱しています。これまでのところ、1 つの配列を行う方法は理解していますが、2 番目の配列については手がかりがありません。なぜかとても単純だと思ったのですが、2 番目の配列はもう少し複雑です。
cpp は次のとおりです。
#include <iostream>
using namespace std;
extern "C" double Average (int, double []);
void main ()
{
double Array1 [10] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.0};
double Array2 [11] = {-1.1, -2.2, -3.3, -4.4, -5.5, -6.6, -7.7, -8.8, -9.9, -10.0, -11.0};
cout << "Average of Array1 is " << Average (10, Array1) << endl;
cout << "Average of Array2 is " << Average (11, Array2) << endl;
}
私のコード:
.386
.model flat
public _Average
.data
.code
_Average proc
finit
mov ecx, [esp + 4] ; get the number of elements
mov ebx, [esp + 8] ; get the address of the array
fld REAL8 PTR [ebx]
fadd REAL8 PTR [ebx + 8]
fadd REAL8 PTR [ebx + 16]
fadd REAL8 PTR [ebx + 24]
fadd REAL8 PTR [ebx + 32]
fadd REAL8 PTR [ebx + 40]
fadd REAL8 PTR [ebx + 48]
fadd REAL8 PTR [ebx + 56]
fadd REAL8 PTR [ebx + 64]
fadd REAL8 PTR [ebx + 72]
fdiv REAL8 PTR [ebx + 72]
ret
_Average endp
end