printf如何在内部工作。

时间:2010-11-09 20:36:57

标签: c assembly

  

可能重复:
  C/C++ function definitions without assembly

你好, 我想知道printf是如何在内部工作的......在内部我的意思是使用底层系统调用/ ISR 等机制......而不是关于变量参数列表......

原因:我正在使用FASM但是控制台i / o几乎没有,我知道我可以使用c库中提供的printf(我不知道如何,但这是另一个点)

感谢。

1 个答案:

答案 0 :(得分:5)

使用write(2)系统调用,文件描述符设置为STDOUT(其值为1)。

要从汇编调用系统调用,eax寄存器必须保存系统调用的id(我认为write()的特定数量是3)和其余的寄存器(ebx,ecx ,. ..)必须包含参数。然后执行int 80h会将控制从进程切换到处理系统调用的内核例程。

以上是特定于平台的,但几乎所有类Unix操作系统都是这样的。