Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ 9-1.doc
Скачиваний:
1
Добавлен:
21.11.2019
Размер:
101.89 Кб
Скачать

4. Методичні вказівки.

ОМК К1816ВЕ51 представляє собою 8-розрядний контролер, тобто його внутрішні вузли (АЛП, регістри загального призначення) є 8-розрядними. Приймати і видавати інформацію він також може лише побайтно, бо його порти вводу-виводу 8-розрядні. Тому процедура додавання двох двобайтних чисел мусить бути розбита на два етапи: додавання молодших байтів і додавання старших байтів з врахуванням переносу з молодшого байта результату в старший.

Залежно від індивідуального завдання або вказане значення операндів, або вказана їх адреса, а також вказана адреса, за якою має бути розміщений результат.

Команди арифметичних та логічних операцій передбачають, що один з операндів знаходиться в регістрі А, який називають акумулятором. Другий операнд може знаходитися

або в резидентній пам’яті даних (РПД) контролера чи в одному з регістрів спеціальних функцій (команди з прямою адресацією), або бути вказаним безпосередньо в команді (команди з безпосередньою адресацією).

Таким чином, спочатку в акумулятор слід помістити молодший байт операнда А. Це можна зробити за допомогою команд MOV A, ad або MOV A, #data , залежно від індивідуального завдання.

Виконати додавання до молодшого байта операнда M молодшого байта операнда N можна за допомогою команд ADD A, ad або ADD A, #data. При цьому слід мати на увазі, що перенос, який може виникнути при додаванні, заноситься контролером в прапорець С (сьомий біт регістра слова стану процесора PSW).

Результат виконання арифметичних та логічних операцій завжди заноситься в акумулятор, звідки його можна переслати за заданою адресою (заданий регістр, чи вказану комірку РПД, чи в один з регістрів спеціальних функцій). Перед додаванням старших розрядів операндів M та N необхідно звільнити акумулятор, тобто переслати результат за вказаною адресою за допомогою команди MOV ad, A, де ad задана адреса молодших розрядів результату.

Так як при додаванні старших байтів слід врахувати перенос, який виник при попередньому додаванні, то це додавання можна виконати за допомогою команд ADDС A, ad або ADDС A, #data. Результат додавання представляє собою старші розряди результату, який буде знаходитися в акумуляторі і повинен переслатися за вказаною адресою за допомогою команди MOV ad, A, де ad задана адреса старших розрядів результату (див. ДОДАТОК 1).

На основі приведеного вище аналізу складається блок-схема алгоритму розв’язку задачі (рис.1) з врахуванням системи команд ОМК К1816ВЕ51, тобто з врахуванням тих операцій, які можна виконати за його допомогою.

Рис.1. Алгоритм додавання двох двобайтних чисел.

При цьому слід використати такі позначення:

А1 – значення або адреса старшого байта першого операнда;

А2 – значення або адреса молодшого байта першого операнда;

В1 – значення або адреса старшого байта другого операнда;

В2 – значення або адреса молодшого байта другого операнда;

S1 – адреса старшого байта результату;

S2 – адреса молодшого байта результату.

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