русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Основні теоретичні відомості


Дата додавання: 2014-11-27; переглядів: 872.


Для опису простих типів даних у програмі на асемблері використовуються спеціальні директиви резервування й ініціалізації даних, що, по суті, є вказівками транслятору на виділення для змінної з заданим ім'ям визначеного обсягу оперативної пам'яті. Якщо проводити аналогію з мовами високого рівня, то директиви резервування й ініціалізації даних є визначеннями змінних. Відрізняються вони тим, що для одної змінної (під одним ім'ям) може бути ініціалізовано декілька значень одного типу, розміщених у пам'яті послідовно, тобто для них резервується потрібний обсяг пам'яті. Наприклад, об'явити просту змінну a типу byte і масив mas із 10 елементів типу byte можна за допомогою директиви db (визначити byte):

a db ?

mas db 10 dup (?)

За допомогою цих директив можна визначати змінні простих типів, покажчики і змінні структурованих типів, наприклад, масиви або структури. Докладна інформація про директиви резервування й ініціалізації даних наведена у інтерактивному довіднику з асемблеру [2] (Інтерактивний довідник з асемблеру – Типи даних).

Масиви у асемблері задаються як змінні простого типу. Доступ до елементів масиву здійснюється за допомогою індексного оператору [операнд], у якості операнду може використовуватись один з індексних регістрів (si, di). Запис z[si] значить, що треба прочитати значення, яке знаходиться у оперативної пам'яті за адресою, що дорівнює сумі зміщення змінної z і si×(тип_даних_змінної_z). Докладна інформація про роботу з масивами наведена у довіднику [2] (Типи даних – Данні складного типу).

Одною з основних конструкцій алгоритмічної мови будь-якого рівня є цикл. У асемблері передбачено оператори циклу, аналогічні за алгоритмом роботи циклам FOR мов високого рівня. Початкове значення лічильника циклу треба помістити у регістр сх, перед початком циклу поставити мітку (наприклад, m1:), наприкінці тілу циклу розмістити оператор циклу (наприклад, loop m1). При кожному проходженні оператору loop, лічильник циклу у регістрі сх буде зменшуватись на 1, при цьому якщо сх¹0, то керування буде передаватися на мітку m1, у іншому випадку відбудеться вихід з циклу і керування буде передано на оператор, що стоїть після оператору циклу. Докладна інформація про оператори циклу наведена у інтерактивному довіднику [2] (Опис команд – LOOP у таблиці).

Цикли також можуть бути організовані за допомогою операторів безумовного – jmp мітка1 (перехід на мітка1) – і умовного переходу. Для здійснення умовних переходів спочатку потрібно порівняти два операнда за допомогою команди

cmp операнд1, операнд2 (порівняти оператор1 і оператор2).

За результатами порівняння всановлюються прапори – окремі біти у регістрі прапорів [2] (Програмна модель мікропроцесора – 16 регістрів користувача – Регістри стану і керування). У відповідності від комбінацій прапорів може бути виконано перехід за однією з команд умовного переходу [2] (Опис команд – Опис команд, упорядкованих за функціональною ознакою – Умовні), які починаються з букви j (jump). Інші букви відповідають першим буквам англійських слів. Наприклад, у слові дорівнює (equal) – перша буква е, тому команда

je мітка2

означає перехід на мітка2 якщо операнд1 дорівнює операнд2.

Аналогічно jg мітка3 (перехід на мітка3 якщо операнд1 більше операнд2), jl мітка4 (перехід на мітка4 якщо операнд1 менше операнд2). Докладна інформація про оператори безумовного і умовного переходів наведена у довіднику [2] (Опис команд – Опис команд, упорядкованих за функціональною ознакою – Умовні).


<== попередня лекція | наступна лекція ==>
Порядок виконання роботи | Порядок виконання роботи


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн