вызовы ms-dos api жестко закодированы в exe?

если я правильно помню, когда dos загружает программу, программа использует весь процессор, то есть dos ничего не делает в это время, но почему-то это меня не интересует, т.е. вызовы API все еще должны быть оценены. вызовы API жестко запрограммированы в программе, когда файл asm собран и связан? причина, по которой я хочу это знать, заключается в том, что мне нужно знать, что кеш полностью свободен для exe, чтобы поэкспериментировать с оптимизацией кеша.


person vecvan    schedule 16.11.2010    source источник
comment
Разве вызов API не останавливает вашу программу? Также обратите внимание, что прерывания все еще работают.   -  person Migol    schedule 16.11.2010


Ответы (1)


Вы правильно помните, DOS — это однозадачная операционная система. Когда ваша программа запускается, она получает полный контроль над процессором.

Вызовы DOS API выполняются через прерывание INT 21. Когда вы вызываете функцию API, регистры загружаются с соответствующими параметрами и вызывается прерывание INT 21. Затем управление возвращается к операционной системе, которая обрабатывает запрос, а затем передает управление обратно вашему приложению.

Настройка параметров и вызов прерывания, о которых я упоминал, связаны в исполняемом файле статически, динамически загружаемые библиотеки отсутствуют.

person buc    schedule 16.11.2010