レジスタで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. Cの右シフト演算子?
- 3. PL/SQLのシフト演算子
- 4. Javaシフト演算子のクエリ
- 5. シフト演算子でルビ演算子の優先順位問題
- 6. シフト演算子を使用しない算術右シフト
- 7. Postgres配列型シフト演算子
- 8. Chiselで算術シフト演算子を使用する方法
- 9. 演算子( - - )()演算子C#
- 10. 演算子if演算子
- 11. 左シフト<<と右シフト>>演算子の実際の適用
- 12. C++演算子()括弧 - 演算子Type()vs型演算子()
- 13. SystemVerilogで必要な可変シフト演算子の種類は?
- 14. Swiftの符号なし右シフト演算子 '>>>'
- 15. PythonでLFSRのシフト演算子を使う
- 16. 負のオペランドの符号付き右シフト演算子
- 17. ClojureでJavaScriptの左シフト演算子を実装する
- 18. ビット単位の演算子とシフトの問題
- 19. 演算子のオーバーロード演算
- 20. C++演算子+演算子+ =オーバーロード
- 21. XOR演算子とstd :: ostream演算子
- 22. Xval演算子と比較演算子?
- 23. 共有ポインタ[]演算子と++演算子
- 24. Pythonのビット演算子 '&' 演算子
- 25. は、Invoke演算子&演算子はKotlin
- 26. C++:演算子オーバーロード、演算子+
- 27. Java演算子 - > how ==演算子
- 28. Cプログラミング!算術演算子演算
- 29. なぜ2つの右シフト演算子と1つの左シフト演算子だけがJavaにありますか?
- 30. ポストインクリメント演算子++