この配列の1番目(1)をレジスタに代入したいとき,オペランドにはどのように表記をしたらよいのでしょうか.
x: .quad 1,2,3,4
はデータの宣言としてはquad
(quadruple word 64ビット)の配列のイメージですが、アクセスの際はレジスタに合わせてアドレスをそのバイト長で増減させる必要があります。64ビット幅でアクセスしたいのであれば、rax~rdxレジスタなどを使うのでしょう。各要素の値をレジスタにロードしたいのであれば、例えば以下のようになります。
x86asm
1# AT&T x64
2.data
3x: .quad 1, 2, 3, 4
4
5.text
6mov x, %rax # アドレスx + 0 で指すところの中身 (quadの配列x[0])
7mov x + 8, %rbx # アドレスx + 8 で指すところの中身 (quadの配列x[1])
8mov x + 16, %rcx # アドレスx + 16 で指すところの中身 (quadの配列x[2])
9mov x + 24, %rdx # アドレスx + 24 で指すところの中身 (quadの配列x[3])
10
11# 参考
12mov $x, %rax # アドレスx自体
13...
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。