- •ЮУрГУ
- •Кодирование программ
- •Тема 2 Архитектурные особенности организации
- •1. Назначение и структура базовой ЭВМ
- •Структура базовой ЭВМ
- •Компьютер PDP-8
- •Характеристики базовой ЭВМ:
- •Характеристики регистров
- •Характеристики регистров
- •2. Кодирование программ и система команд
- •Мнемоническое (символическое) кодирование для записи команд:
- •Форматы команд базовой ЭВМ:
- •Способы адресации
- •Способы адресации
- •3. Арифметические операции
- •Арифметические операции в базовой ЭВМ
- •Операция сложения
- •Выполнение команды сложения ADD 21 (жирные линии – передача адреса, двойная – команд
- •Размещение целого двоичного числа в нескольких словах памяти
- •Операции с несколькими словами
- •Изменение знака числа (команды CMA и INC)
- •4. Управление вычислительным процессом, сдвиги и логические операции
- •Почти все программы ЭВМ должны обладать способностью проверять исходные данные, промежуточные и окончательные
- •Разветвления в программах (команды BCS, BPL,BMI,BEQ, BR)
- •ЦиклическЦиклическиее программы программы используются в тех случаях, когда требуется
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Побитовая обработка данных
- •Побитовая обработка данных (команды ROL, ROR, CMC, CLC)
- •Побитовая обработка данных (команда ROL)
- •5. Подпрограммы и параметры
- •Подпрограммы
- •Стековая память
- •Примеры использования подпрограмм
- •Примеры использования подпрограмм
- •Использование подпрограмм
- •6. Основные стадии выполнения команды
- •Цикл команды
- •Соотношение между микрооперациями и микрокомандами на примере выполнения одноадресной команды (микропрограммы) вычитания в
- •1.Выборка команды
- •1. Выборка команды
- •2. Выборка адреса
- •2. Выборка адреса
- •3. Исполнение
- •3. Исполнение
- •4. Прерывание
- •Литература:
Циклические программы
(косвенная адресация и использование команды ISZ)
Укороченный вариант программы суммирования элементов массива Кроме косвенной адресации используется средство для изменения текущего
адреса суммируемого элемента массива. Этим средством является команда ISZ 7, при выполнении которой содержимое ячейки 7 наращивается на 1. Но так как это содержимое (адрес элемента массива) положительная величина, то после выполнения ISZ 7 будет пропущена следующая за ней команда. Поэтому в ячейку 33 помещена команда NOP (НЕТ ОПЕРАЦИИ), но можно было бы поместить любое
Циклические программы
(индексная адресация)
При косвенном адресовании такой ячейки сначала ее содержимое будет
использовано в качестве адреса операнда, а затем оно автоматически увеличивается на единицу.
При прямом адресовании индексные ячейки работают как обычные ячейки (их содержимое может измениться лишь в случае записи информации в ячейку).
В базовой ЭВМ это ячейки с адресами от 008 до 00F.
Побитовая обработка данных
(команда логического умножения AND)
Команды побитовой обработки данных используются для упаковки (расположения в одном слове нескольких небольших чисел или кодов)и распаковки информации в ЭВМ, обработки текстовой информации, умножения (деления) на 2, 4, 8 и т. п.
Программа получения количества нечетных элементов массива, расположенного
вячейках с адресами от 010 до 02F.
Впрограмме использована маска (двоичное число для выделения определенного
разряда другого двоичного числа с помощью операции AND): 0001 и операции логического поразрядного умножения AND (0×0=0, 0×1=0, 1×0=0,1×1=1).
Побитовая обработка данных (команды ROL, ROR, CMC, CLC)
Циклические сдвиги: а) влево; б) вправо
Команды ROL (ЦИКЛИЧЕСКИЙ СДВИГ ВЛЕВО НА 1 РАЗРЯД) и ROR (ЦИКЛИЧЕСКИЙ СДВИГ ВПРАВО НА 1 РАЗРЯД) замыкают аккумулятор и регистр переноса в кольцо и сдвигают все биты кольца на один разряд влево или вправо.
Сдвигами битов влево или вправо можно реализовать операции умножения или деления на 2 (один сдвиг), 4 (два сдвига) и т. д.
Например: число |
(0000 0000 0011 1010)2= 58 |
|
сдвиг на 1 |
разряд влево (0000 0000 0111 0100)2= 116 |
|
сдвиг на 2 |
разряда влево (0000 0000 1110 1000)2= 232 |
|
В некоторых приложениях возникает необходимость инвертирования или очистки определенного бита слова. Для этого, например, можно:
поместить слово в аккумулятор; сдвинуть слово так, чтобы нужный бит попал в регистр переноса;
выполнить команду CMC («Инвертирование регистра переноса») или CLC
Побитовая обработка данных (команда ROL)
Программа выделения знака числа: проанализировать элементы массива X(I) и при отрицательном X(I) присвоить H(I)–му элементу массива значение 1, а при положительном X(I) значение 0
5. Подпрограммы и параметры
Подпрограммы
Повторяющиеся части программы, когда необходимо выполнить одни и те же действия по обработке данных, выделяют в подпрограмму, а в соответствующие места программы заносят лишь команды обращения к этой подпрограмме и адреса возврата из
подпрограммы. В современных программах для хранения адресов возврата из подпрограмм используется стековая память.
Обращение к подпрограмме из основной программы с использованием команды JSR
При оформлении подпрограммы перед первой ее командой следует разместить ячейку, в которую будет пересылаться адрес возврата из подпрограммы. В обращении к подпрограмме указывается адрес именно этой ячейки, и команда JSR M выполняет следующие действия:
1) помещает в ячейку М адрес следующей за JSR М команды, т. е. команды, которая должна выполняться вслед за командами подпрограммы; 2) передает управление команде, расположенной в ячейке с адресом М+1.
В микроЭВМ, имеющих несколько аккумуляторов или, регистров общего назначения, можно передавать в подпрограмму (или получать из нее) большее число параметров. Но и число регистров общего назначения также ограничено. Поэтому во всех микроЭВМ (как и в базовой ЭВМ) есть возможность обмена параметрами через ячейки памяти.
Стековая память
Организация типичного стека
Вложенные процедуры
Использование стека при обработке вложенных процедур
Примеры использования подпрограмм
Программа получения удвоенного модуля трех чисел
Примеры использования подпрограмм
(размещение параметров подпрограммы непосредственно за командой JSR)
