Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 4.doc
Скачиваний:
0
Добавлен:
02.08.2019
Размер:
96.77 Кб
Скачать
    1. Общая структура программы в машинных кодах.

У разных вычислительных машин разный ассортимент выполняемых команд. Основными командами всех машин являются: арифметические команды, команды индексной арифметики и команды передачи управления. Команда состоит из адреса, количества используемых сумматоров, доначнительного разряда косвенной адресации и кода операции, конкретизирующего выполняемую операцию.

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

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

Пример: 1 о 10о

2 о 11о

3 о 12о

4 о 13о

5 о 14о

6о 5о 15о

7 о Подпрограмма

8 о

9 о

Основная

программа

4о - ячейка, содержащая команду передачи управления;

15о - ячейка косвенной адресации памяти, т.е. ячейка 15о содержит адрес 5о возврата.

5о - ячейка точки возврата.

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

    1. Процесс выполнения программы в машинных кодах.

Основными устройствами вычислительной машины являются: исполнительное, запоминающее и управляющее. В управляющем устройстве содержится счетчик, в котором находится адрес команды, выполняемой следующей (счетчик команд – обозначен на рис.). Как уже говорилось, программа в машинных кодах – это упорядоченная последовательность адресов ячеек памяти. После исполнения любой команды (обозначим её адрес расположения через), не являющейся командой передачи управления, счетчик команд увеличивается на единицу и затем выполняется команда, имеющая адрес io+1. (См. рис. 1 и 2).

Исполнительно

устройство

Адресная Код

часть операции

Счетчик

Команд

Запоминающее

устройство

Рис. 1. Код операции – передача управления. Адресная часть не содержит ссылок на индекс-регистр и косвенную адресацию.

Адресное Исполнительное

арифметическое устройство

устройство

Адресная +UР Код

часть операции

Счетчик команд

Запоминающее

устройство

Рис. 2. Код операции – не передача управления. Адресная часть содержит ссылку на индекс – регитр.

Арифметические команды, содержащие адрес, осуществляются в два такта:

  1. Управляющее устройство запускает процесс формирования адреса и его передачи в запоминающее устройство. На рис.1 и 2 представлены два метода (их гораздо больше) формирование адреса.

Первый метод (Рис. 1) – текущий адрес io получен из io-1 путем его увеличения на 1.

Второй метод (Рис.2) – текущей адрес получен:

а) из io – UР путем его увеличения на значение ИР. Этот метод используется, когда, например, необходимо перешагнуть через участок рабочей памяти основной программы.

Замечание 1. Здесь не идет речь о передачи управления. Передача управления производится только на подпрограмму (самостоятельный модуль).

б) io - результат косвенной адресации, т.е. io содержался в предыдущей команде. В этом случае адресная часть сразу передает io в запоминающее устройство (рисунок отсутствует ! См. книгу Ф. Бауэр и Г. Гооз).

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

Действие команды передачи управления заключается в том, что значение счетчика команд устанавливается равным адресу, указанному в команде передачи управления (рис. 3).

Исполнительное

устройство

Адресная Код

часть операции

Счетчик команд

Запоминающее устройство

Рис. 3. Код операции – передача управления.

Замечание 2. После передачи управления процесс обработки программы продолжается либо, схемам представленным на рис. 1, 2, либо каким-то другим. Поэтому в данной схеме (рис. 3) не задействовано исполнительное устройство.

Управляющее устройство наряду со счетчиком команд содержит еще командный регистр, в котором располагается код команды.

Первые вычислительные машины (фон Нейман) не имели адресного арифметического устройства до тех пор, пока рабочая и программная память не были полностью отделены друг от друга (Эйкен). Включение адресных арифметических устройств в структуру вычислительной машины (Шехер) позволило учесть индексацию и наличие многих уровней имен.

Полная структурная схема процессов обработки программы в вычислительном устройстве изображена на рис. 4.

Адресное Исполнительное

арифметическое устройство

устройство

рим Адресная +UР Код

часть операции

+1

Счетчик команд

Управляющее устройство

Запоминающее устройство

Примечание. рим – оператор извлечения содержимого какого-либо объекта или оператор разыменования – уменьшает (разыменовывает) уровень объекта на единицу.

Пример 1. const int n или конст. цел. N

n=5

x=рим n

х – имеет целый тип и равно 5.

Пример 2. х=рим у+7

х- равно содержимому «у» +7.

Пример 3. к=рим 545о+9

к – есть сумма значения, расположенного по адресу 545о и 9.

Пример 4. io=рим 34o+UP

Содержимое ячейки 34о есть адрес – косвенная адресация.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]