x86 アセンブリ (AT&T) に問題があります。
アセンブラで配列ルックアップを実装する必要があるため、レジスタ %ebx に配列の最初の項目 (arr[0] など) があり、arr[1] を指すために、たとえば次のように書きました。
mov -4(%ebx), %eax
問題は、ebx のアドレスを取得しようとするとセグメンテーション違反が発生することです。ebx の値 (arr[0] の値) を問題なく取得できるため、これは非常に奇妙です.. アドバイスはありますか?
編集:わかりました、エラーを理解したと思います。配列を宣言するとき、変数 arr に最初の要素のアドレスを設定する必要があります。
mov -4(%ecx), %eax
しかし、この命令では、アドレスではなく値を入力します。では、どうすれば住所を入れることができるでしょうか?