how printf works internally.? [duplicate]

倖福魔咒の 提交于 2019-12-05 00:19:07

问题


Possible Duplicate:
C/C++ function definitions without assembly

hi again, I want to know how printf works internally...by internally I mean what underlying system calls/ISRs etc mechanism is used...and not about the variable argument list...

Reason:I am using FASM but there is little there for console i/o, I know I can use printf available from the c library(I don't know how but that's a different point)

thanks.


回答1:


The write(2) system call is used with the file descriptor set to STDOUT (its value is 1).

To invoke a system call from assembly, the eax register has to hold the id of the system call (I think the particular number of write() is 3) and the rest of the registers (ebx, ecx, ...) have to contain the arguments. Then doing an int 80h will switch the control from your process to the kernel routine that handles system calls.

The above is platform-specific, but virtually all Unix-like operating systems work like that.



来源:https://stackoverflow.com/questions/4138338/how-printf-works-internally

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!