アセンブリ NASM で数値を印刷するにはどうすればいいですか? 質問する

アセンブリ NASM で数値を印刷するにはどうすればいいですか? 質問する

レジスタに整数があるとします。これをどのように印刷すればよいでしょうか? 簡単なサンプルコードを示してもらえますか?

「hello, world」のような文字列を印刷する方法はすでに知っています。

私はLinuxで開発しています。

ベストアンサー1

すでにLinuxを使っている場合は、自分で変換する必要はありません。プリントその代わり:

;
; assemble and link with:
; nasm -f elf printf-test.asm && gcc -m32 -o printf-test printf-test.o
;
section .text
global main
extern printf

main:

  mov eax, 0xDEADBEEF
  push eax
  push message
  call printf
  add esp, 8
  ret

message db "Register = %08X", 10, 0

printfcdecl 呼び出し規約そのため、後でスタック ポインターを復元する必要があります。つまり、関数に渡されるパラメーターごとに 4 バイトを追加します。

おすすめ記事