回答編集履歴

4

番号を訂正

2017/07/15 08:49

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
File without changes

3

番号訂正\.

2017/07/15 08:49

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- > 6. 代入している即値が「8Byte」を完全に超えています
33
+ > 5. 代入している即値が「8Byte」を完全に超えています
34
34
 
35
35
 
36
36
 

2

問3の回答を追加。

2017/07/15 08:48

投稿

rubato6809
rubato6809

スコア1380

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への回答を追加

2017/07/15 08:15

投稿

rubato6809
rubato6809

スコア1380

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
+ 一般的な言い方をすれば「デスティネーションとして指定されたレジスタのビット数(「容量」でも構わないよ、普通そういう言い方しないと思うが)によって決まる」と、容易に想像がつく話だけどねえ。