Я написал несколько интерпретаторов высокого уровня и простой компилятор и интерпретатор байтового кода, и я хочу начать создавать мощный промежуточный язык для моей небольшой операционной системы.Как вызовы Windows API выполняются на уровне сборки?
У этого есть свой собственный API, как и окна, и единственное, что мешает мне начать этот проект, - это знать, как эти конкретные вызовы API (например, win32-формы api) выполняются на уровне сборки.
Есть ли способ увидеть результат сборки не оптимизированного кода c, например, и посмотреть, как именно выполняются вызовы? Или какие-либо источники в WWW?
Заранее спасибо
принять отладчик и пойти :) – RbMm
Win32 API - это не что иное, как набор DLL-функций и COM-интерфейсов. На этом фундаменте создаются такие API, как .NET Forms. Вы знаете, как делать регулярные вызовы функций в сборке? Вы понимаете, как работает стек вызовов? Вызов функций DLL и вызовы метода интерфейса аналогичны вызовам обычной функции, и они устанавливают стек вызовов одинаково, вам просто нужно использовать указатель времени выполнения для получения адреса памяти функции/метода для 'call', будь то из таблицы поиска DLL вашего приложения, загружаемой загрузчиком ОС при запуске приложения или с виртуальной таблицы объекта, и т. д. –
Вам нужно разглядеть между системными вызовами и вызовами Windows API. Если вы пишете свою собственную операционную систему, вы будете писать системные вызовы, а не вызовы Windows API, поэтому это системные вызовы, о которых вам нужно знать. – EJP