これを解決するために、私は C を理解しています。私はまだアセンブリの初心者なので、ここで少し問題が発生しています。
複数の引数を取るのに問題があります。そうする必要がある場合はそれらを数えて、アセンブリコードでフォーマット引数を使用してください。
多くの引数を持つ文字列にいくつかのバイトを追加しようとしています。最初の 2 つの引数をスタックに置く方法は知っていますが、最初の後の他の引数は形式 (%s、%d、%c など) であり、最初の引数は変数 i であると想定されているものです。に書きたい。C では、標準 main に引数-counter があります。ここでも引数を数えたいと思うかもしれません!? どうすればそれを行うことができますか?
.globl minisprintf
# Name: minisprintf
# Synopsis: A simplified sprintf
# C-signature: int minisprintf(unsigned char *res, unsigned char *format, ...);
# Registers: AL: for characters
# %ECX: first argument, res
# %EDX: second argument, args
#
minisprintf: # minisprintf
pushl %ebp # start of
movl %esp, %ebp # function
movl 8(%ebp), %ecx # first argument
movl 12(%ebp), %edx # second argument
# other arguments
# checking last byte of string res