Я всегда думал, что функции, такие как printf()
, на последнем этапе определяются с помощью встроенной сборки. Глубоко в недрах stdio.h похоронен некоторый код asm, который на самом деле говорит CPU о том, что делать. Например, в dos я помню, что он был реализован с помощью первого mov
начала строки в ячейку памяти или регистрации, а затем вызвал int
terupt.
Однако, поскольку версия x64 для Visual Studio не поддерживает встроенный ассемблер вообще, это заставило меня задаться вопросом, как вообще не могут быть какие-либо ассемблерные функции на C/С++. Как библиотека, подобная printf()
, реализуется в C/С++ без использования кода ассемблера? Что на самом деле выполняет правильное программное прерывание? Спасибо.