Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Аппаратное обеспечение -> Баула В.Г. -> "Введение в архитектуру ЭВМ и системы программирования" -> 7

Введение в архитектуру ЭВМ и системы программирования - Баула В.Г.

Баула В.Г. Введение в архитектуру ЭВМ и системы программирования — Москва, 2003. — 144 c.
Скачать (прямая ссылка): vvedenievarhetekturuevm2003.pdf
Предыдущая << 1 .. 2 3 4 5 6 < 7 > 8 9 10 11 12 13 .. 86 >> Следующая


• RA - регистр, называемый счётчиком адреса, он имеет 9 разрядов и хранит адрес команды, которая будет выполняться вслед за текущей командой;

• RK - регистр команд имеет 32 разряда и содержит текущую выполняемую команду (код операции КОП и адреса операндов A1, A2 и A3);

• w- регистр «омега», в который после выполнения некоторых команд (у нас это будут арифметические команды сложения, вычитания, умножения и деления) записывается число от 0 до 2 по правилу (S - результат арифметической операции): 11

г

0, S = 0,

1, S < 0,

2, S > 0;

• Err - регистр ошибки, содержащий нуль в случае успешного выполнения очередной

команды и единицу в противном случае.

В таблице 3.1 приведёны все команды учебной машины УМ-3.

3.1. Схема выполнения команд

Все бинарные операции (т.е. те, которые имеют два аргумента и один результат) выполняются в нашей учебной машине по схеме: <A1>:=<A2>®<A3> (® - любая бинарная операция). Каждая команда выполняется по следующему алгоритму:

1. RK := <RA>; чтение очередной команды на регистр команд УУ.

2. RA := RA + 1.

3. Выполнение операции, заданной в коде операции (КОП). При ошибочном КОП выполняется Err := 1.

4. if (Err=0) and (КОП<>СТОП) then goto 1 else КОНЕЦ.

Теперь нам осталось определить условие начала работы программы. Для загрузки программы в память и формирования начальных значений регистров в устройстве управления на устройстве ввода

имеется специальная кнопка ПУСК ( I © ). При нажатии этой кнопки устройство ввода

самостоятельно (без сигналов со стороны устройства управления) производит следующую последовательность действий:

1. Производится ввод расположенного на устройстве ввода массива машинных слов в память, начиная с первой ячейки; этот массив машинных слов заканчивается специальным признаком конца массива.

2. RA := 1

3. w := 0

4. Err := 0

Далее всё готово для автоматической работы центрального процессора по загруженной в память программе. Таким образом, мы полностью определили условия начала и конца работы нашей алгоритмической системы (вспомним курс "Алгоритмы и алгоритмические языки").

Таблица 3.1. Команды учебной машины.

КОП Операция и её мнемоническое обозначение
01 СЛВ - сложение вещественных чисел
11 СЛЦ - сложение целых чисел
02 ВЧВ - вычитание вещественных чисел
12 ВЧЦ - вычитание целых чисел
03 УМВ - умножение вещественных чисел
13 УМЦ - умножение целых чисел
04 ДЕВ - деление вещественных чисел
14 ДЕЦ - деление целых чисел (то же, что и div в Паскале)
24 МОД - остаток от деления (то же, что и mod в Паскале)
00 ПЕР - пересылка: <A1>:=<A3>
10 ЦЕЛ - вещественное в целое: <A1>:=Round(<A3>)
20 ВЕЩ - целое в вещественное: <A1>:=Real(<A3>)
09 БЕЗ - безусловный переход: goto A2, т.е. RA:=A2
19 УСЛ - условный переход: Case w of 0: goto A1; 1: goto A2; 2: goto A3 end
31 СТОП - остановка выполнения программы
05 ВВВ - ввод A2 вещественных чисел в память, начиная с адреса A1 12

15 ВЫВ - вывод вещественных чисел, аналогично ВВВ
06 ВВЦ - ввод целых чисел, аналогично ВВВ
16 ВЫЦ - вывод целых чисел, аналогично ВВВ

По своей архитектуре наша учебная машина очень похожа на первые ЭВМ, построенные в соответствии с принципами фон Неймана, например, на отечественную ЭВМ СТРЕЛА [3], выпускавшуюся в средине прошлого века.

3.2. Примеры программ для учебной машины.

3.2.1. Пример 1. Оператор присваивания.

Составим программу, которая реализует арифметический оператор присваивания. y := (x+1)2 mod (x-1)2.

Сначала необходимо решить, в каких ячейках памяти будут располагаться наши переменные x и y. Эта работа называется распределением памяти под хранение переменных. При программировании на Паскале эту работу выполняла за нас Паскаль-машина, когда видела описания переменных: Var x,y: integer;

Теперь нам придётся распределять память самим. Сделаем естественное предположение, что наша программа будет занимать не более 100 ячеек памяти (напомним, что программа вводится, начиная с первой ячейки памяти при нажатии кнопки ПУСК). Тогда, начиная со 101 ячейки, память будет свободна. Пусть для хранения значения переменной x мы выделим 101 ячейку, а переменной y - 102 ячейку. Остальные переменные при необходимости будем размещать в последующих ячейках памяти. В приведенном примере нам понадобятся дополнительные (как говорят, рабочие) переменные r1 и r2, которые мы разместим в ячейках 103 и 104 соответственно.

При программировании на машинном языке, в отличие от Паскаля, у нас не будут существовать константы. Действительно, в какой бы ячейке мы не поместили значение константы, ничто не помешает нам записать в эту ячейку новое значение. Поэтому мы будем называть константами такие переменные, которые имеют начальные значения, и которые мы не планируем изменять в ходе выполнения программы. Отсюда следует, что такие константы, как и переменные с начальным значением, следует располагать в тексте программы и загружать в память вместе с программой при нажатии кнопки ПУСК. Разумеется, такие переменные с начальными значениями следует располагать в таком месте программы, чтобы устройство управления не начало бы выполнять их как команды. Чтобы избежать этого мы будем размещать их в конце программы, после команды СТОП.
Предыдущая << 1 .. 2 3 4 5 6 < 7 > 8 9 10 11 12 13 .. 86 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.