Митя Алёшкин
Митя Алёшкин

про регистры процессора и паралельность выполнения программ

процессор выделяет каждой программе почучуть времени. Написал я свою програму, в ней поменял значения регистров процесора (например ах и сх) . Процессор повыполнял ее (регистры поменялись) . Когда время выполнения для этой программы кончилось перешел к другой программе (недовыполненой) . Как востановяться значения регистров процессора для другой программы?

нашелся ответ
"Простейший пример - таймер, который вызывается примерно 18 раз в секунду для обновления. Компьютер всегда что-то делает! Даже тогда, когда ждет от вас нажатия клавиши. Что происходит, когда вызывается прерывание от таймера? Примерно тоже, что и при вызове процедуры. Компьютер запоминает в стеке адрес текущей команды, а также все регистры и переходит на адрес прерывания, по которому находится процедура обработки этого прерывания (например, таймера, которая обновит показания часов/минут/секунд) . Затем, как процедура отработала, компьютер восстановит из стека адрес возврата и все регистры, и наша программа пойдет работать дальше. "

а стек находиться в оп по адресу указаному в регистре ss

ЛН
Лиза Назарова

Все-таки не процессор выделяет программе "чуть-чуть" времени, а ОС. Она в т. ч. заботится и о сохранении значений регистров. Так что копай в сторону планировщика ОС.

Костя
Костя

Процессор ничего не знает о многозадачности. всё на уровне ОС. Каждый поток имеет стек, куда пишется состояние, при прерывании.

Похожие вопросы
скорость выполнения программы на VBA зависит от характеристик процессора?
Как назначить выполнение определенной программы определенным ядром процессора?
Как рассчитать время выполнения ассемблерной программы?
С++ ,при выполнении выдает ошибку ( закрыть программу ) подскажите что тут не так?
Во время выполнения прикладная программа
Записать содержимое (в десятичной системе) регистра AX, полученное в результате выполнения следующих операторов ассембле
Ошибки при выполнении программы в C++.
Для каких программ не важна скорость выполнения?
нужна программа для просмотра регистров процессора. на c++ нужно написать как это сделать?))
какой результат выполнения этого фрагмента программы ?