私は C のサブセット用のコンパイラを構築しており、現在は配列を扱っています。次のものがあるとします。
int main() {
int x[3];
x[0] = 1;
x[1] = 3;
x[2] = 4;
}
アセンブリでは、割り当ては次のようになります。
movl $1, -12(%ebp)
movl $3, -8(%ebp)
movl $4, -4(%ebp)
ここまでは順調ですね。に保存されている任意の位置にアクセスしたい場合%ebx
、どうすればよいでしょうか? このウィキブックを読んでいますが、構文がよくわかりません。
私は次のことを試しましたが、うまくいかないようです:
# Suppose I want to do x[1] = 5
movl $1, %ebx
movl $5, -4(%ebp, %ebx, 4)
私は何が欠けていますか?