Регистры общего назначения могут иметь несколько значений?
Здравствуйте, я пока изучаю только теорию по Ассемблеру, но мне уже не понятен один момент:
У процессора есть регистры общего назначения, которые мы можем использовать в ассемблерном коде. Но ведь по мимо нашей программы в системе могут работать и другие программы на ассемблере и использовать такие же регистры, как и мы.
Каким образом две программы используют один регистр? Или он может содержать в себе несколько значений?
Многозадачность обеспечивает операционная система, а не процессор.
На ядро операционной системы и ложится "переключение процессов".
С точки зрения архитектуры процессора - нет никаких "процессов", есть просто выполняющийся код.
При переключении контекста значения регистров нужно где-нибудь сохранить (например, в стеке), а при обратном переключении - загрузить обратно. Это происходит при вызове функций, входе в обработчики прерываний, переключении на другой процесс/поток и т.д.