回答編集履歴
4
番号を訂正
test
CHANGED
File without changes
|
3
番号訂正\.
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
>
|
33
|
+
> 5. 代入している即値が「8Byte」を完全に超えています
|
34
34
|
|
35
35
|
|
36
36
|
|
2
問3の回答を追加。
test
CHANGED
@@ -1,4 +1,36 @@
|
|
1
|
+
> 3,$subr は$は即値に付ける構文ですよね?
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
Yes.
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
> ラベルにも付けれるんですか?
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
```mov $subr, %rdx```は、シンボル"subr"の値を%rdxにロードするのです。できて当たり前でしょう。念の為に言うと、シンボル値が決定するのはリンク時である。
|
14
|
+
|
15
|
+
おまけ:ら抜き言葉は止めよう。軽薄に聴こえるw
|
16
|
+
|
17
|
+
×付けれる
|
18
|
+
|
19
|
+
○付けられる
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
> 私の環境ではできませんでした
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
ひとつ見てみたいのは、君の手元で、アセンブルリストを出して、```mov $subr, %rdx```の部分がどうなってるか、(エラーにならない、と言うなら)何バイト命令としてアセンブルされるか。
|
28
|
+
|
29
|
+
もうひとつは、```movq $subr, %rdx```としたら、何か変化があるか。。。
|
30
|
+
|
31
|
+
|
32
|
+
|
1
|
-
> 代入している即値が「8Byte」を完全に超えています
|
33
|
+
> 6. 代入している即値が「8Byte」を完全に超えています
|
2
34
|
|
3
35
|
|
4
36
|
|
1
問6への回答を追加
test
CHANGED
@@ -11,3 +11,17 @@
|
|
11
11
|
のことであれば、strike君の名誉のために、さっさと質問を取り下げるのが
|
12
12
|
|
13
13
|
良いと思う。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
> 6, mov $1, %rax
|
18
|
+
|
19
|
+
> 最後に、qやl と言った文字をニーモニックにつけますが、
|
20
|
+
|
21
|
+
> これは即値によって決めるものですか?それともレジスタの容量によって決めるものですか?
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
0x01も、0x0001も、0x00000001も、0x00000000000000001 も、値は全て1ですが、デスティネーションとして %rax が指定されてるのだから、その1は64ビットの1である(LSBitのみ1で、それ以外の63bitは0である)と判断できます。
|
26
|
+
|
27
|
+
一般的な言い方をすれば「デスティネーションとして指定されたレジスタのビット数(「容量」でも構わないよ、普通そういう言い方しないと思うが)によって決まる」と、容易に想像がつく話だけどねえ。
|