【发布时间】:2013-04-29 10:15:55
【问题描述】:
为了解决这个问题,我了解 C,而且我还是汇编的初学者,所以我在这里遇到了一个小问题。
我在获取多个参数时遇到了一些麻烦,如果我应该这样做,也许可以计算它们,并在我的汇编代码中使用格式参数。
尝试将一些字节添加到具有许多参数的字符串中。我知道如何将两个第一个参数放在堆栈上,但第一个参数之后的其他参数是格式(如 %s、%d、%c 等),第一个参数应该是变量 i想写信给。 在 C 中,标准 main 具有参数计数器。我可能也想计算这里的论点!?如果是这样,我该怎么做?
.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
【问题讨论】:
标签: c assembly format arguments