0
構造体を持つ配列を作成しました。配列とその配列へのポインタを使用して配列から構造体を取得する必要があります。x86アセンブリ - 構造体を持つ配列から構造体を取得
struct T{
char a, b, c, d, e, f, g;
};
T CtiPrvekPole1(T *pole, int index){
T result;
_asm{
mov eax, pole;
mov ebx, index;
mov eax, [eax + ebx * 8];
mov result, eax;
}
return result;
}
int _tmain(int argc, _TCHAR* argv[])
{
T struct1, struct2, struct3, struct4;
struct1.a = 1;
struct1.b = 2;
struct1.c = 3;
struct1.d = 4;
struct1.e = 5;
struct1.f = 6;
struct1.g = 7;
struct2.a = 8;
struct2.b = 9;
struct2.c = 10;
struct2.d = 11;
struct2.e = 12;
struct2.f = 13;
struct2.g = 14;
struct3.a = 15;
struct3.b = 16;
struct3.c = 17;
struct3.d = 18;
struct3.e = 19;
struct3.f = 20;
struct3.g = 21;
struct4.a = 22;
struct4.b = 23;
struct4.c = 24;
struct4.d = 25;
struct4.e = 26;
struct4.f = 27;
struct4.g = 28;
T pole1[] = { struct1, struct2, struct3, struct4 };
T result = CtiPrvekPole1(pole1, 2);
printf("Cti prvek pole1 : %c\n", result.b);
}
どのように構造体を取得する必要がありますか?私は8バイトを使用しました。なぜなら、1つの構造に7バイトがあるため、それは8バイトのアライメントでなければなりません。私は正しい?
ありがとうございました。