Ассемблер. Можно где-нибудь найти документации по прерываниям Windows?

Ассемблер. Можно где-нибудь найти документации по прерываниям Windows?

Дополнено (1). Ну или можно документации по Windows API, с полным руководством по их использованию в коде на ассемблере.

В Windows нет прерываний

Документация по функциям Windows API не зависит от языка программирования. Для удобства использования Windows API нужен продвинутый Ассемблер, который облегчает вызов функций.
Примеры программ для Windows на Ассемблере http://flatassembler.net/examples.php

Прерывания для системных вызовов в Windows уже давно не используются. Раньше (где-то во времена Windows 2000) использовалось прерывание 2Eh, но потом в процессорах появились специальные инструкции, которые работают значительно быстрее, чем прерывания - SYSCALL и SYSENTER. Теперь все системные вызовы делаются через них. Поддержка int 2Eh была оставлена для совместимости, но вроде бы только в 32-битных версиях.

Номера системных функций известны, их можно найти в интернете, например здесь:
https://j00ru.vexillium.org/syscalls/nt/32/ (для 32-битных)
https://j00ru.vexillium.org/syscalls/nt/64/ (для 64-битных)
Но обрати внимание, что там каждая версия Windows (включая пакеты обновлений) описана отдельно, потому что номера многих функций в разных версиях системы (и для разной разрядности) отличаются! Например: функция NtReadFile в 64-битной Windows 7 - 0x0003, в 32-битной - уже 0x0111, а в Windows Vista - 0x0102.
Поэтому их никогда не следует использовать напрямую (вот почему они и не документированы официально).

Добавить комментарий