レジスタでNASMのビットシフトをどうやって行いますか?私はマニュアルを読むだけで、これらの演算子に言及しているようです。>>,< <です。私がそれらを使用しようとすると、NASMはスカラー値で動作するシフト演算子について不平を言う。スカラー値が何であるかを説明し、使用方法の例を挙げることができますか>>および< <また、shrまたはshlの演算子があると思いました。彼らが存在する場合は、それらを使用する方法の例を挙げることができますか?あなたの時間をありがとう。NASMシフト演算子
4
A
答えて
4
<<
および>>
は整数定数でのみ使用します。これは「スカラー値」の意味です。 shl
またはshr
命令を使用してレジスタ内の値をシフトすることができます。それらはレジスタの左または右のそれぞれのビット数をシフトするために使用されます。
この例の最初の行はax
が16秒のラインを掛けると同じである右整数除算によって同じである2ビットでbx
の値をシフトする、4ビットを左に値をシフト4.
shl ax, 4
shr bx, 2
また、定数の代わりに、シフトするビット数を示すためにcl
を使用することができます。これらおよび関連する手順の詳細については、this pageを参照してください。
4
ughoavgfhwの回答にピギーバック... <<
と>>
を使用するには、定数に直接それらを使用する:
MOV EAX, 1 << 2 ; Puts 4 into EAX
MOV EAX, 2 << 2 ; Puts 8 into EAX
MOV EAX, 8 >> 1 ; Puts 4 into EAX
関連する問題
- 1. Nasmアセンブリ関係演算子
- 2. Javaシフト演算子のクエリ
- 3. Cの右シフト演算子?
- 4. PL/SQLのシフト演算子
- 5. 演算子if演算子
- 6. C++:演算子オーバーロード、演算子+
- 7. C++演算子+演算子+ =オーバーロード
- 8. Xval演算子と比較演算子?
- 9. なぜ2つの右シフト演算子と1つの左シフト演算子だけがJavaにありますか?
- 10. タイプキャスト演算子
- 11. Groovy ==演算子
- 12. ストリンジェライザ演算子#
- 13. ! &&演算子Java
- 14. ドット演算子
- 15. groovy ^演算子
- 16. ハスケル:=演算子?
- 17. Java + =演算子?
- 18. 演算子オーバーロード==
- 19. Bigint +演算子
- 20. "?"演算子
- 21. Groovy *。演算子
- 22. F#演算子 "?"
- 23. モジュロ演算子
- 24. * =演算子は
- 25. オーバーロードテンプレート演算子*
- 26. ルビーパイプ演算子
- 27. ポストインクリメント演算子++
- 28. 。 &演算子
- 29. C#の演算子の演算順序
- 30. オーバーロード算術演算子