ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
476107 Топик полностью
fk0, легенда (24.12.2013 14:44 - 14:52, просмотров: 90) ответил LightElf на Да, софтверный. С передачей параметров и возвратом результата. Стандартная фишка. В Линуксе (и в винде вроде) на x86 используется int80h для вызова функций ядра из пользовательского приложения, ессно с передачей параметров и возвратом результата.
Только причём здесь возвращение результата? В линуксе и в винде вызываются функции ядра, например open(). Вот они и возвращают результат. А внутри функции аргументы раскладываются в нужные регистры, вызывается прерывание, регистры раскладываются в результат и делается return. Из прерывания. А функцию обработки прерывания напрямую никто не вызывает, вызывается INT 0x80. И без ассемблера здесь сложно обойтись. Обработчик прерывания и функция-обёртка (open()) могут компилироваться разными компиляторами с разными опциями. Да и frame pointer другой всяко.
[ZX]