質問編集履歴

2

細部を修正

2019/02/05 05:50

投稿

jaguarundi
jaguarundi

スコア19

test CHANGED
File without changes
test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
 
74
74
 
75
- 1. 逆アセンブルしたソースに出現する" mov eax,0x0"の意味
75
+ ### Q1. 逆アセンブルしたソースに出現する" mov eax,0x0"の意味
76
76
 
77
77
  それまではrbpやrspしかレジスタが登場していないにも関わらず、突如eaxを0に代入する部分の意味があまりよく分かりませんでした。
78
78
 
@@ -80,13 +80,13 @@
80
80
 
81
81
 
82
82
 
83
- 2. DWORD PTR[rbp-0x4]について
83
+ ### Q2. DWORD PTR[rbp-0x4]について(※勘違いでした)
84
-
85
- (勘違いでした)
86
-
87
- (元の質問)初歩的な質問になりますが、push rbs, mov rbs, rspが終わった後に出現するDWORD PTR[rbp-x](xは任意の数)は、スタックフレームを確保するためにxバイトだけメモリを確保する(スタックを下位アドレスにむけて伸ばす)と解釈してよろしいのでしょうか。
88
84
 
89
85
 
86
+
87
+ ~~(元の質問)初歩的な質問になりますが、push rbs, mov rbs, rspが終わった後に出現するDWORD PTR[rbp-x](xは任意の数)は、スタックフレームを確保するためにxバイトだけメモリを確保する(スタックを下位アドレスにむけて伸ばす)と解釈してよろしいのでしょうか。
88
+
89
+ ~~
90
90
 
91
91
  (自己解決)
92
92
 

1

質問2を自己解決いたしました。

2019/02/05 05:50

投稿

jaguarundi
jaguarundi

スコア19

test CHANGED
File without changes
test CHANGED
@@ -82,9 +82,23 @@
82
82
 
83
83
  2. DWORD PTR[rbp-0x4]について
84
84
 
85
+ (勘違いでした)
86
+
85
- 初歩的な質問になりますが、push rbs, mov rbs, rspが終わった後に出現するDWORD PTR[rbp-x](xは任意の数)は、スタックフレームを確保するためにxバイトだけメモリを確保する(スタックを下位アドレスにむけて伸ばす)と解釈してよろしいのでしょうか。
87
+ (元の質問)初歩的な質問になりますが、push rbs, mov rbs, rspが終わった後に出現するDWORD PTR[rbp-x](xは任意の数)は、スタックフレームを確保するためにxバイトだけメモリを確保する(スタックを下位アドレスにむけて伸ばす)と解釈してよろしいのでしょうか。
86
88
 
87
89
 
90
+
91
+ (自己解決)
92
+
93
+ DWORD PTR[rbs-x]は、rbsのアドレスからxバイト、下位アドレスの方に向かったところにあるメモリのアドレスに値を入れる、ということでした。
94
+
95
+ 私の質問内容を実現しているのは、
96
+
97
+ mov rbp, rsp
98
+
99
+ sub rsp, 0x10
100
+
101
+ のようにrspを操作してスタックフレームを確保する技術のようです。
88
102
 
89
103
 
90
104