少し宿題です。Nasm return structure
我々はいくつかの構造
typedef struct{
int min;
int max;
} M;
M mima(int N, ...);
int main(){
M l = mima(5, 1, -2, 4 , 90, 4);
printf("mi = %d, ma = %d \n", l.min, l.max);
return 0;
}
との* .cファイルを持っていると我々はNASMで "美馬" を書き込む記述する必要があります。 私の唯一の問題は、最小値と最大値を見つけた後、構造として "c"プログラムに送ることができないことです。 -2と90の代わりに私はいくつかのランダムな負の数を取得します。
構造体を送り返すだけで十分であると言われました。
mov eax, (here is our min)
mov edx, (here is our max)
しかし、残念ながらそれは動作しません。ここで
は私のasmファイルは
BITS 32
section .text
global mima
mima:
push ebp
mov ebp, esp
start:
; doing magic
leave
ret
ありがとうございました。プログラムはeaxで動作します。しかし、それは 'leave mov [ebp-16]、min mov [ebp-20]、max ret'でも機能します。なぜ私は何の説明も見つけられません。 –
呼び出し元が返されたバッファをその場所に割り当て、 'eax'リターンを気にしなければ、偶然になります。 – Jester