- •В. Г. Баула Введение в архитектуру эвм и системы программирования
- •Предисловие
- •1. Понятие об архитектуре эвм
- •2. Машина Фон Неймана
- •2.1. Память
- •2.2. Устройство Управления
- •2.3. Арифметико–Логическое Устройство
- •2.4. Взаимодействие уу и алу
- •3. Учебная машина
- •3.1. Схема выполнения команд
- •3.2. Примеры программ для учебной машины.
- •3.2.1. Пример 1. Оператор присваивания.
- •3.2.2. Пример 2. Условный оператор.
- •3.2.3. Пример 3. Реализация цикла.
- •3.2.4. Пример 4. Работа с массивами.
- •3.3. Формальное описание учебной машины
- •4. Введение в архитектуру эвм
- •4.1. Адресность эвм
- •4.2. Сравнительный анализ эвм различной адресности
- •4.3. Дробно-адресная архитектура
- •4.4. Способы адресации
- •4.5. Многообразие форматов данных
- •4.6. Форматы команд
- •4.7. Базирование адресов
- •5. Понятие семейства эвм
- •6. Архитектура младшей модели семейства Intel
- •6.1. Память
- •6.2. Форматы данных
- •6.3. Вещественные числа
- •6.4. Целые числа
- •6.5. Сегментация памяти
- •6.6. Мнемонические обозначения регистров
- •6.7. Структура команд
- •6.8. Команды языка машины
- •6.8.1. Команды пересылки
- •6.8.2. Арифметические команды
- •7. Язык Ассемблера
- •7.1. Понятие о языке Ассемблера
- •7.2. Применение языка Ассемблера
- •7.3. Классификация предложений языка Ассемблер
- •7.4. Пример полной программы на Ассемблере
- •7.5. Переходы
- •7.6. Команды переходов
- •7.6.1. Команды безусловного перехода
- •7.6.2. Команды условного перехода
- •7.6.3. Команды цикла
- •7.7. Работа со стеком
- •7.8. Команды вызова процедуры и возврата из процедуры
- •7.9. Программирование процедур на Ассемблере
- •7.9.1. Стандартные соглашения о связях
- •8. Система прерываний.
- •9. Дополнительные возможности Ассемблера.
- •9.1. Строковые команды.
- •9.2. Логические команды.
- •9.3. Команды сдвига.
- •10. Модульное программирование
- •10.1. Модульное программирование на Ассемблере.
- •10.2. Схема работы редактора внешних связей.
- •10.3. Схема работы статического загрузчика.
- •10.4. Схема работы динамического загрузчика.
- •11. Понятие о системе программирования.
- •11.1. Компоненты системы программирования.
- •11.2. Характеристики исполняемых модулей.
- •11.2.1. Перемещаемые модули.
- •11.2.2. Повторно-выполняемые модули.
- •11.2.3. Повторно-входимые (реентерабельные) модули.
- •12. Макросредства языка Ассемблер.
- •12.1. Сравнение процедур и макроопределений.
- •13. Схема работы транслятора с языка Ассемблера.
- •14. Понятие о мультипрограммном режиме работы.
- •14.1. Требования к аппаратуре для обеспечения возможности работы в мультипрограммном режиме.
- •14.1.1. Система прерываний.
- •14.1.2. Механизм защиты памяти.
- •14.1.3. Аппарат привилегированных команд.
- •14.1.4. Таймер.
- •15. Архитектурные особенности современных эвм.
- •15.1. Конвейерные эвм.
- •15.2. Эвм различной архитектуры.
- •15.2.1. Архитектура эвм с общей шиной.
- •15.2.2. Достоинства и недостатки архитектуры с общей шиной.
- •15.2.3. Архитектура эвм с каналами ввода/вывода.
- •15.3. Уровни параллелизма.
- •Список литературы.
4. Введение в архитектуру эвм
4.1. Адресность эвм
Как мы уже упоминали, число адресов в команде называется адресностьюЭВМ. Разнообразие архитектур ЭВМ предполагает, в частности, и различную адресность команд. Рассмотрим схему выполнения команд с различным числом адресов операндов. Будем предполагать, что для хранения кода операции (КОП) в команде отводится один байт (8 разрядов), а для хранения каждого из адресов – 3 байта (это обеспечивает объём памяти224 ячеек). Ниже приведены форматы команд для ЭВМ различной адресности и схемы выполнения этих команд для случая бинарных операций (у таких операций два операнда и один результат).
Трёхадресная машина.
-
КОП
A1
A2
A3
= 10 байт
8 разрядов
24 разряда
24 разряда
24 разряда
Схема выполнения команд такой машины нам уже известна:
R1 := <A2>; R2 := <A3>; S := R1 R2; <A1> := S; { – операция}
Двухадресная машина.
-
КОП
A1
A2
= 7 байт
8 разрядов
24 разряда
24 разряда
Схема выполнения команд:
R1 := <A1>; R2 := <A2>; S := R1 R2; <A1> := S;
Заметим, что теперь для выполнения бинарной операции первый и второй операнды задаются явнов качестве адресов в команде, а местоположение результата операции задаётся неявно или, как говорят,по умолчанию. В рассмотренном выше случае результат операции по умолчанию помещается на место первого операнда, уничтожая его.
Одноадресная машина.
-
КОП
A1
= 4 байта
8 разрядов
24 разряда
Схема выполнения команд:
R1 := <A1>; S := S R1;
Для работы в одноадресной машине необходимы ещё две команды, которые имеют один операнд и один результат и выполняются по другим схемам. Это команда чтения числа из памяти на регистр сумматора:
СЧ A1
Она выполняется по схеме
S := <A1>
и команда записи значения из сумматора в память:
ЗП A1
Она выполняется по схеме
<A1> := S
При выполнении бинарных операций в одноадресной ЭВМ только один второй операнд задаётся в команде явно, а первый операнд и результат задаются неявно – это регистр сумматора.
Безадресная машина.
-
КОП
= 1 байт
8 разрядов
В отличие от других рассмотренных выше машин, безадресная машина использует при работе аппаратно реализованный в компьютере стек, для чего вводятся две дополнительные одноадресныекоманды: записи из памяти в стек
ВСТЕК A1
которая выполняется по схеме
R1 := <A1>; ВСТЕК(R1)
и команда чтения из стека
ИЗСТЕКА A1
которая выполняется по схеме
ИЗСТЕКА(R1); <A1> := R1
Таким образом, за исключением двух указанных выше одноадресных команд, которые имеют длину 4 байта, все остальные команды являются безадресными, имеют длину 1 байт и выполняются по схеме:
R1 := ИЗСТЕКА; R2 := ИЗСТЕКА; S := R1 R2; ВСТЕК(S)
Как видно, для безадресных команд при выполнении бинарных операций уже все аргументы (два операнда и результат) задаются неявно и располагаются в стеке. Отсюда понятно, почему часто машины этой архитектуры называются стековымиЭВМ.
Кроме рассмотренных видов машин, существовали и другие архитектуры ЭВМ, например, четырёхадресные, в четвёртом адресе которых дополнительно хранится ещё и адрес следующей выполняемой команды. Собственно, адресов может быть и больше, с помощью таких команд можно, например, реализовать функции от многих переменных.
Существуют архитектуры ЭВМ, которые различаются не только количеством адресов в команде, но и наличием в команде нескольких кодов операций. Такие ЭВМ называются машинами с очень длинным командным словом(VLIW–verylargeinstructionword). В этих компьютерах, например, указанные команды могут реализовывать оператор присваивания видаz:=k*(x+y)по схеме:
R1 := <x>; R2 := <y>; S := R1+R2;
R1 := <k>; S := S*R1; <z> := S
В компьютерах с такой архитектурой команда содержит два кода операции и четыре адреса аргументов:
-
КОП1
КОП2
A1
A2
A3
A4
Такие команды могут выполняться, например, по схеме:
R1 := <A2>; R2 := <A3>; S := R1 КОП1 R2;
R1 := <A4>; S := S КОП2 R1; <A1> := S