ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
5 июля
135275 Топик полностью
kpu (16.10.2008 13:45, просмотров: 174) ответил =AlexD= на Ещё раз. Делая call со сдвигом проц ЖДЁТ пока выделяемые регистры сохранятся в стеке? ИЛИ КОГДА ЭТО ДЕЛАЕТСЯ (сохраняются регистры в стеке)?
Когда 128 кончатся, тогда самый начальный(старый) call (его РОНы PC PSW) вытесняется в заранее выделенную память (от gcc стека отличается) и только тут ждет. Если же окна для всей вложенности call-ов/прерываний уместились в 128 регистров и в 16 PC/PSW, то в ОЗУ нЕчего скидывать и для возвратов не надо обращатся в память. Если же что то было вытесненно, то проц подтянет из памяти автоматом когда ret-ами обратно откатятся все окна. Т.е. получив начальные параметры в регистрах и имея заполненные кешы, проц может долго не выходить в память (да и на сист. магистраль)и ничего не ждать. (еще) проц может предварительно (перед дальней дорогой :) скинуть спец. командой все окана в регистровом файле в стек, и начать оптимизированную под 128 цепочку процедур (да и прерываний). НО про такой вариант вроде вы писали.