teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

`movzbl` に嘘を書いていた (cpu instruction だと書いてた) のを修正

2018/05/24 17:33

投稿

pute
pute

スコア134

answer CHANGED
@@ -4,8 +4,7 @@
4
4
  > 参考:https://sourceware.org/binutils/docs/as/i386_002dVariations.html
5
5
  > In 64-bit code, ‘movabs’ can be used to encode the ‘mov’ instruction with the 64-bit displacement or immediate operand.
6
6
 
7
- `movzbl` は正式な命令です。`movzbl %r1, %r2` で、`%r1` (%al など8bitレジスタ限定) の値をそのまま `%r2` (こちらは32bitレジスタ限定) にコピーします。上位ビットはゼロクリアされます。
7
+ `movzbl` も同じく gas 特有のニーモニックで、intel 的には `movzx` です。オペランド1の値をオペランド2にコピーします。上位ビットはゼロクリアされます。
8
- MOVe Zero-extension from Byte to Long ってことですね。
9
8
 
10
9
  > cmpときて2とedi(第一引数?)を比較するとのことですが、ediには何も入っていないので比較することは不可能なのではないでしょうか。
11
10
 
@@ -17,4 +16,6 @@
17
16
 
18
17
  > また初学者でも理解できるようなサイト、おすすめの本などありましたら教えていただけると幸いです。
19
18
 
20
- わたしの場合、自分で intel のリファレンスを読みながら逆アセンブラを書いて勉強しました。参考になるか分かりませんが……。
19
+ わたしの場合、自分で intel のリファレンスを読みながら逆アセンブラを書いて勉強しました。参考になるか分かりませんが……。
20
+
21
+ [5/25 2:30] `movzbl` に嘘を書いていた (cpu instruction だと書いてた) のを修正