出力するために整数を文字列に変換しようとしています。 しかし、整数が128ビットである間に、2つのレジスタでx86_64とNASM
アセンブリを使用しています。 だから私はそれを出力する方法を知らない。 ありがとう!アセンブリ内の128ビット整数の文字列への変換
答えて
以下は、符号なし整数に使用できる(アセンブリスタイルの)アルゴリズムです。数n
で起動します。あなたはそれがどのように動作するかを理解するように、手動でwetwareて良いスタートをする必要があります
start:
if n is non-zero then goto nonZeroNum.
output '0'.
return.
nonZeroNum:
set digitCount to zero.
numLoop:
get n modulo 10 and push it onto the stack.
increment digitCount.
divide n by 10 (integer division).
if n is non-zero then goto numLoop.
digitLoop:
pop digit.
convert number to character (eg, adding 48 for ASCII).
output that character.
decrement digitCount.
if digitCount is non-zero then goto digitLoop.
が、私はそれを実行することをお勧めしたいです。
次に、擬似コードの機能を実行するアセンブリ命令を実行するだけで済みます。それは1対1マッピングである可能性が高いのであまり面倒ではありません。
私は方法を知っていますが、分ける方法はわかりません.... nは2つのレジスタにありますが、命令は64b/64bのみを扱います(わかりません) – CXWorks
分裂の代わりに繰り返し減算。それはどんなビット幅でも簡単です。 ) – Jester
128ビット整数が符号なしか符号付きかに応じて、 'DIV'(符号なし)または' IDIV'(符号付き)命令を使用してください。 'RDX'レジスタに上位64ビットを置き、命令の前に' RAX'レジスタの下位64ビットを置きます。そして、 'RBX'に10を格納すると、' DIV RBX'命令は10で割って商を 'RAX'に、残りを' RDX'(元の内容を書き込む)に入れます。 – pcarter
- 1. アセンブリ内の整数への文字列
- 2. 128ビット整数6
- 3. Pentahoケトルの文字列から整数/数値への変換
- 4. アセンブリで整数を文字列に変換する方法8086
- 5. PHP:64ビット整数を文字列に変換する
- 6. C#文字列から整数への変換の問題
- 7. 64bit整数から文字列への変換
- 8. バッチで文字列から整数への変換
- 9. 128ビット整数とウィンドウ上のc?
- 10. 文字列変換へのJava整数の変換が失敗しました
- 11. リスト内の文字列を整数に変換する
- 12. 変換文字列は、整数に文字列内の数字を分離し、変数
- 13. 10進数から整数へのビット単位の変換
- 14. 文字列 - 整数変換?コンパイラエラーメッセージ:CS1502
- 15. 文字列を整数に変換
- 16. Javaの:文字列配列整数へ
- 17. 数字の文字配列を整数に変換する
- 18. ColdFusion IPv6から128ビット符号なし整数へ
- 19. Fortranの文字から整数への変換
- 20. 文字列をギザギザの整数の配列に変換する
- 21. 整数へのJ2ME 16進文字列
- 22. 整数文字列値へのハッシュ
- 23. 文字列への整数 - キャストとプリント:
- 24. JavaFX Linechart ClassCastException文字列への整数
- 25. Int32から24ビット符号付き整数への変換
- 26. PHP - 文字列を64ビットに変換
- 27. 文字列変換への配列Codeignater_3
- 28. 文字列変換への配列
- 29. 文字列内の整数の除算
- 30. 10進文字列で表される64ビット整数を16進文字列に変換する方法
私はCの関数を使用することはできませんし、アセンブリでこのlong intを分割する方法がわかりません – CXWorks
この質問は既に議論されています、[ここをクリック](http://stackoverflow.com/questions/13523530/printing-an) -int-or-int-to-string)を使用します。あなたの解決策ではありませんか? –