質問編集履歴
3
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
|
72
72
|
|
73
|
-
4)、前回の質問を
|
73
|
+
4)、前回の質問のアセンブリを載せます。文字列が見当たりません。文字列のポインタを代入しているような命令も見当たらないのですが・・・
|
74
74
|
|
75
75
|
```アセンブリ
|
76
76
|
|
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -27,6 +27,8 @@
|
|
27
27
|
下の方の場合なんですが・・・
|
28
28
|
|
29
29
|
1)、**スタック領域につまれる順序が決まっていないなら、レジスタに代入したいポインタを探すのが困難ですよね?**
|
30
|
+
|
31
|
+
(つまり・・・スタック → レジスタに入れるとき、スタックの場所がわからないということです。)
|
30
32
|
|
31
33
|
順番を定めた方がよいのではないかと思います。
|
32
34
|
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,6 +39,12 @@
|
|
39
39
|
2)、前回の質問でも、出てきたのですが、システムコールを呼ぶ時のパラメータをいれるレジスタは必ず固定なのでしょうか??
|
40
40
|
|
41
41
|
「どの値をどのレジスタに代入しなくてはならない」というのは決まっているのでしょうか?
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
raxやeaxはそれぞれ、64bit, 32bitですが、コンパイラが出力するレジスタは混合して出力されます。
|
46
|
+
|
47
|
+
raxとeaxの使い分けはどのようにすれば良いのでしょうか?
|
42
48
|
|
43
49
|
|
44
50
|
|
@@ -111,3 +117,17 @@
|
|
111
117
|
|
112
118
|
|
113
119
|
Linux 64bit, intel CPU, GCCコンパイラです。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
[追記]
|
124
|
+
|
125
|
+
毎回、C言語のファイルを逆アセンブルすると、出てくるんですが、
|
126
|
+
|
127
|
+
上記のアセンブリにも出てきていますね。
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
call命令の前後なのですが、**mov $0x0,%eax**・・・これですね。
|
132
|
+
|
133
|
+
EAXレジスタを0にしているようですが、なぜこんなことをする必要性があるのでしょうか??
|