Регистры общего назначения

Я новичок в компьютерной архитектуре. Может ли кто-нибудь помочь мне понять использование ограниченных регистров при обработке нескольких сложных приложений. Мой вопрос в том, что существует фиксированное количество регистров (например: 80386 содержит всего шестнадцать регистров), которые интересны программисту приложений.

Что произойдет, если нам понадобится больше регистров (например, для увеличения размера стека), будут ли адреса и данные из регистров записаны обратно в основную память?. В многозадачной среде данные регистров и адреса различных приложений перемещаются из одной основной памяти в другую. и обратно зарегистрироваться для обработки?

Есть ли в операционных системах специальные регистры, которые не мешают работе регистров общего назначения?

И предложить какой-нибудь хороший ресурс для понимания таких концепций для начинающих?


person Carbonizer    schedule 12.12.2010    source источник


Ответы (1)


Регистры - это самая быстрая память в компьютере. Набор команд любого конкретного процессора написан специально для архитектуры регистров. Вы правы, что данные / адреса должны быть сохранены в памяти, поскольку используется больше места в регистрах.

Что касается многозадачной системы, планировщик обычно должен сохранять контекст выполнения между задачами. Этот контекст включает в себя текущее состояние регистров, а также другие биты состояния (в зависимости от процессора).

Хорошим первым шагом будет изучение программирования на ассемблере. Он настолько близок к оборудованию, что вы изучите все это досконально. Получив это, возьмите книгу по операционным системам, чтобы увидеть, как это делается на более высоком уровне. В зависимости от ваших обязательств (и любопытства) вы также можете прочитать исходный код небольших операционных систем реального времени, таких как FreeRTOS. Читать об 8-битных архитектурах микроконтроллеров тоже приятно, поскольку они просты. Например, AVR или HC08 - довольно простые архитектуры для изучения. Вся информация бесплатна; вы просто должны это прочитать. Наслаждаться.

person caveman    schedule 12.12.2010
comment
Не могли бы вы указать мне, где я могу изучить основы теоретической / концептуальной работы с регистрами, основной памятью, обработкой и т. Д.? - person Carbonizer; 12.12.2010
comment
Я бы посоветовал начать с книги по ассемблеру. Он настолько близок к архитектуре, что вам нужно научиться выполнять сборку. К сожалению, у меня нет никаких рекомендаций по архитектурам типа x86, но я бы предложил это из-за простоты экспериментов. - person caveman; 14.12.2010