Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УММ / Тема 2 / Тема 2 Лекция 2 / Тема 2 Лекция 2.pptx
Скачиваний:
14
Добавлен:
16.03.2016
Размер:
19 Мб
Скачать

Циклические программы

(косвенная адресация и использование команды 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)

Соседние файлы в папке Тема 2 Лекция 2