Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
1 апреля
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
629181
Топик полностью
AlexBi
(06.11.2015 12:37, просмотров: 343)
ответил
fk0
на
Для отдельного потока, треда, задачи, процесса, нужен свой стек, значит нужно переключать стеки и менять $SP. Что тут непонятного?
Вот например кусок кода:
a=1; // $SP=100 if(a==b) { a=2; // $SP=100 p=alloca(10); a=3; // $SP=90 ??? } a=4; // $SP=100 ???
Как будет тут меняться $SP и как при этом будет вести себя доступ к локальной переменной а, адресуемой относительно $SP
Ответить
Локальные переменные адресуются относительно специального регистра frame pointer потому. Компилятор конечно может и относительно SP нраоптимизировать, но он знает что делает и учитывает смещение SP.
-
fk0
(06.11.2015 13:06
)