загрузка...

трусы женские
загрузка...
Реферати » Реферати з інформатики та програмування » Аналітичний огляд книги" Програмування на мові асемблера ".

Аналітичний огляд книги "Програмування на мові асемблера".

ОБРОБКА МАСИВІВ
Елемент масиву найпростіше вибрати, помістивши його адресу в регістри Н і L. У цьому випадку можна:
* працювати з елементом, звертаючись до нього як до регістру М;
* Вибирати наступний елемент масиву (за наступним більшого адресою);
* Використовуючи команду INX для збільшення значення пари регістрів Н і L, або попередній елемент (за попереднім меншому адресою), використовуючи DCX для зменшення Н і L.
* вибирати будь-який довільний елемент, завантаживши в іншу пару регістрів зсуву елемента щодо адреси, що міститься в НL, і використавши команду DAD (16-ковий додавання).
ПОШУК В ТАБЛИЦІ
Так як в процесорах 8080 і 8085 відсутня індексація, то адреса, необхідний для пошуку в таблиці, повинен обчислюватися явно з використанням команди DAD. Як і при роботі з масивами, пошук в таблиці є простим, якщо таблиця містить 8-розрядні елементи даних; складніше, коли таблиця містить більш довгі елементи або ж адреси. У цьому випадку можуть бути корисні команди XCHG, PCHL і SPHL, але вони вимагають, щоб програміст поміщав результати у визначені пари регістрів.
РОБОТА З СИМВОЛАМИ
Найпростіший спосіб роботи з символами в процесорах 8080 і 8085 полягає у поводженні з ними як з 8-розрядними числами без знака. Літери і цифри становлять упорядковану послідовність набору символів в кодах ASCII (наприклад, представлення літери А в коді ASCII на одиницю менше, ніж подання букви В). Додаток В) в кінці книги містить повний набір символів ASCII.
ПЕРЕТВОРЕННЯ КОДІВ
Дані можуть бути перетворені з одного коду в інший за допомогою арифметичних або логічних операцій (якщо співвідношення кодів просте) або за допомогою пошуку в таблицях (якщо це співвідношення складне).
Арифметичні ОПЕРАЦІЇ ПІДВИЩЕНОЇ ТОЧНОСТІ
Арифметичні операції підвищеної точності вимагають ряду 8-розрядних операцій. Необхідно виконувати наступне:
* спочатку очистити прапор переносу, так як ніколи не відбувається переносу в молодші байти або позичання з них;
* Використовувати команди складання з перенесенням (ADC) або віднімання з заемом (SBB) для виконання 8-розрядних операцій, які включають перенос або позика з попередньої операції.
Множення і ділення
Існують багато способів виконання множення. Один з підходів полягає в заміні множення невеликих цілих чисел на певну коротку послідовність додавань і зрушень вліво. Поділ на число, що є ступенем 2, можна виконати за допомогою ряду логічних зрушень вправо. Як розмножаться або діляться числа зі знаком, то необхідно звертати увагу на відділення знака від абсолютної величини. Логічні зрушення повинні бути замінені на арифметичні, що зберігають знаковий розряд.
Обробки списків
Якщо елементи списків зберігаються в пам'яті в послідовних адресах, то такі списки можна обробляти так само, як масиви. Якщо два масиву утворюють черги або ланцюжка, то стає очевидною обмеженість даного набору команд, що виражається в наступному:
* не передбачена індексація;
* Непряма адресація можлива тільки через пари регістрів;
* Адреси в парах регістрів можуть бути використані тільки для одержання або записи 8-розрядних даних.
НАЙПОШИРЕНІШІ СТРУКТУРИ ДАНИХ
Більш поширені структури даних можна обробляти за допомогою процедур, призначених для роботи з масивами, таблицями та списками. До поширених структурам даних відносяться черзі або зв'язані списки, а також стеки.
СПОСОБИ ПЕРЕДАЧІ ПАРАМЕТРІВ
Найбільш загальними способами передачі параметрів у мікропроцесорах 8080 і 8085 є наступні:
* У регістрах. Доступними є сім 8-розрядних регістрів загального призначення (A, B, C, D, E, H і L), при цьому три пари регістрів (B, D і H) можуть служити для передачі адрес.
* У заданій області пам'яті. Для реалізації цього підходу найпростіше помістити базовий адреса заданої області в регістри H і L. Зухвала програма до передачі управління підпрограмі повинна зберігати параметри в пам'яті і завантажити базовий адреса в регістри H і L.
* У пам'яті програми безпосередньо за викликом підпрограми.
* У стеці.
ПРОСТОЙ ВВЕДЕННЯ - ВИВЕДЕННЯ
Простий введення - висновок можна виконати, використовуючи або 8-розрядні адреси пристроїв, або 16-розрядні адреси пам'яті. Переваги адрес пристроїв полягають у тому, що вони коротше і використовують окремий адресний простір. Недолік полягає в тому, що команди IN і OUT містять адреси пристроїв і допускають тільки пряму адресацію, тобто команди IN і OUT вимагають, щоб були визначені адреси; в цьому випадку відсутній прямий спосіб передачі адрес пристроїв введення - виведення у вигляді параметрів, так щоб одна програма введення - виведення підтримувала багато пристроїв. З іншого боку, якщо порти введення - виведення займають адреси пам'яті, то за допомогою будь-яких команд, які звертаються до пам'яті, може виконаються також введення - висновок. Проблеми, пов'язані з цим підходом, полягають у його нестандартності, що створює труднощі в тих випадках, коли треба відрізнити передачі введення - виведення від передач в пам'яті, а також коли потрібно, щоб деяка область пам'яті була зарезервована для пристроїв введення - виведення.
СТАН І УПРАВЛІННЯ
Тони стану і управління можуть оброблятися так само, як будь-які інші дані. Єдина особливість полягає в тому, що процесор не може читати з порту висновку; якщо необхідно знати поточний стан порту висновку, необхідно зберігати копію даних в оперативній пам'яті.
ПЕРИФЕРІЙНІ ІНТЕГРАЛЬНІ МІКРОСХЕМИ
У системах 8080 і 8085 найбільш загальними периферійними інтегральними мікросхемами є послідовний інтерфейс 8251, програмований таймер 8253 і паралельні інтерфейс 8255. Всі ці пристрої можуть виконувати безліч функцій, більшість з яких подібно до функцій самого мікропроцесор. Звичайно, периферійні інтегральні мікросхеми виконують менше різних функцій, ніж процесор, і діапазон цих функцій суттєво вже. У цій частині книги описується пристрій 8255.
Написанні програм, ПРАЦЮЮТЬ по перериванню
У більшості систем переривання 8080 і 8085 використовуються команди RST і вхідні сигнали, які передають управління по певними адресами пам'яті. Всі команди RST і вхідні сигнали зберігають старе значення програмного лічильника у вершині стека, але не зберігають автоматично інші регістри. Слово стану процесора (PSW) містить акумулятор (старший байт) і прапори (молодший байт). Переривання повинні бути дозволені явно за допомогою команди EI безпосередньо перед командою RET, що закінчує обслуговуючу програму. Команда EI затримує дійсний дозвіл переривань на один такт команди під уникнення зайвої запису адреси повернення в стек.
Збільшення швидкодії ПРОГРАМ
Прискорити виконання можна тільки визначивши, де втрачається час. Для цього необхідно визначити, які цикли процесор виконує найбільш часто. Основний вплив на зниження витрат часу часто виконуваного циклу надає лічильник числа циклів. Таким чином, важливо визначити, як часто виконуються команди, і працювати далі з циклами в порядку частоти їх виконання.
Після того, як уточнено, які цикли виконуються найбільш часто, час їх виконання можна зменшити, використовуючи наступні правила:
* Виняток надлишкових операцій;
* Реорганізація циклу так, щоб зменшувалася число команд переходу;
* Використання лінійної здібності команд замість підпрограм;
* Використання для тимчасового зберігання стек замість певних адрес пам'яті;
* Призначення регістрів таким чином, щоб отримати максимальний виграш від спеціалізованих команд, як LHLD, SHLD, XCHG, XTHL і PCHL;
* Скрізь, де можливо, для роботи з 16-розрядними даними використання 16-разряднвх команд;
* Використання команд MVI M, INR M і DCR M для роботи з даними пам'яті;
* Використання команд MOV, MVI, INR, DCR, INX, DCX, SHLD, LHLD, XCHG, XTHL, PUSH, POP, PCHL і SPHL для роботи з даними в регістрах;
* Використання RST, PCHL або RET як коротких команд переходу;
* Організація низки умовних переходів таким чином, щоб була мінімізація середнього часу виконання;
* Перевірка на умови, за яких послідовність команд не виконується, і обхід цієї послідовності для випадку виконання умов.
Звичайний шлях до зниження часу виконання полягає в заміні довгих послідовностей команд таблицями. Якщо не передбачені спеціальні виходи або не введено елементи логіки програми, то за допомогою окремого перегляду таблиці можуть виконуватися ті ж операції, що і з допомогою послідовності команд. Ціною цього є

Сторінки: 1 2
загрузка...
ur.co.ua

енциклопедія  з сиру  аджапсандалі  ананаси  узвар