Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
flor_apparato-orientirovnnoe_prog.doc
Скачиваний:
96
Добавлен:
15.06.2014
Размер:
926.72 Кб
Скачать

1.2. Понятие архитектуры компьютера

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

Из вышесказанного становится очевидным, что трудоем­кость си­стемного программирования и объем базовой ин­формации для него значительно больше, чем в приклад­ном программировании. Ближе всего к самым тонким пот­ребностям системного программирования подходит язык ассемблера, позволяющий в форме мнемо­кодов записывать двоичные коды машинных команд и за­давать операнды в виде, ориентированном на машинное представление, в частности на регистры процес­сора.

Архитектура - это логическая структура и функциониро­вание ком­пьютера с точки зрения программиста. Иначе гово­ря, архитектура - это точное описание границы между аппа­ратурой и программным обеспече­нием. Для однопроцессор­ных компьютеров их архитектура определяется архитектурой процессора.

Архитектура процессора состоит из следующих компонентов:

1. Внутренних узлов хранения информации в процессо­ре, явно ука­зываемых или используемых в машинных ко­мандах. Эти узлы назы­вают регистрами программиста.

2. Способов доступа к ячейкам внешней по отношению к процессо­ру адресуемой памяти (так называемой основной па­мяти компьютера).

3. Описания форматов и функций машинных команд.

4. Описания системы прерываний в той степени, в ко­то­рой она значима для программиста. Оно состоит из изложения последовательности действий с информацией при выполне­нии процедуры прерывания, но не содержит описания аппа­ратных узлов и устройств, без понимания дета­лей функцио­нирования которых самый дотошный программист может обойтись.

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

Одним из фундаментальных понятий современной вы­числительной техники и системного программирования яв­ляется понятие адреса. Ад­рес информационного объекта - это порядковый номер ячейки памяти, на­чиная с которой разме­щается в основной памяти эта информация. По­нятие адреса относится как к данным, так и к командам (адрес ко­ман­ды). Для обеспечения большой гибкости процессоры, начиная с 60-х го­дов, в ка­честве элементарной адресуемой ячейки основ­ной памяти используют байт (группу из 8 бит). Адресовать информацию размером ме­нее байта в современных компью­терах невозмож­но. Большинство дан­ных и команд состоит более чем из одно­го байта, в любом случае за адрес этих данных или команд принимается адрес самого младшего байта основной памяти, где хранится их информация.

Для операндов, размещаемых в основной памяти, ин­фор­мация ма­шинного кода команды определяет адрес, назы­вае­мый обычно эффек­тивным, или исполнительным. В со­вре­менных архитектурах компью­теров исполнительный ад­рес отличается от действительного адреса ин­формации в па­мяти. Сделано это для возможности перемещения прог­рамм. Дей­ствительно, если бы такого отличия не было, то при не­об­ходимости разместить исполняемую программу с другого реального ме­ста памяти потребовалось бы ее пере­делать: либо пере­тран­слировать с учетом новой информации о размещении при выполне­нии, либо скор­ректировать те части машинных кодов, которые опреде­ляют исполни­тельный ад­рес. Решением явилось введение и использо­вание специаль­ных регистров, называемых обычно сегментными или, ра­нее, базовы­ми регистрами программы. Эти регистры предназначены для хранения информации, исходя из которой определяется действительный ад­рес начала прог­раммы в памяти - в общем случае части программы, называемой сегментом. Тогда при пере­мещении прог­раммы в памяти доста­точно скорректировать лишь со­держимое реги­стра сегмента (сегментов) программы. В настоящее время этот подход используется во всех архитектурах процессоров, исключая лишь про­стейшие микропроцессоры.

Соседние файлы в предмете Системное программное обеспечение