Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM / asm_лр_ир_copy / О_ASM_ЛР1т.doc
Скачиваний:
8
Добавлен:
15.02.2015
Размер:
237.57 Кб
Скачать

2.2 Формати команд мікропроцесора 8086

Для виконання певних дій процесору необхідно задати програму, що описують порядок цих дій. Незалежно від обраної мови програмування, вихідна програма повинна бути перетворена програмою транслятором у послідовність команд (кодів), зрозумілих на машинному рівні.

Структура машинних команд залежить від застосовуваного процесора. Однак можна виділити ряд основних принципів, які властиві їхній організації. Для організації роботи процесор повинен мати наступну інформацію:

дію або операцію, яку необхідно виконати;

розташування операндів, над якими необхідно виконати дії;

адреса розміщення результату, отриманого при виконанні операції.

Знаючи принципи побудови команд для одного процесора, можна розібратися зі структурою машинних команд інших процесорів.

У МП 8086 використовуються команди змінної довжини від 1 до 6 байт. Довжина кожної команди визначена розроблювачами з урахуванням імовірності її появи. Більш короткі команди мають менший час вибірки їх із пам'яті. Команди, які зустрічаються часто, мають короткі формати: одно-, дво- та трибайтні. Рідше використовуються команди, які мають більший формат: чотири-, п'яти- та шестибайтні.

Команда містить код операції (КОП), а також може містити 8-або 16-бітні операнд або зміщення адреси.

Якщо необхідно розглянути програму в машинних кодах, то можна подивитися лістинг нашої програми. Для цього потрібно провести трансляцію програми з розширенням ***.asm, задавши ключ /L.

Наприклад:

Tasm.exe Pr1.asm /L

2.3 Елементи мови асемблера

Програма мовою асемблера являє собою послідовність операторів, що описують виконувані операції. Елементами мови асемблер можуть бути команди, макрокоманди, директиви або коментарі.

Команди являють собою символічні аналоги машинних команд у вигляді мнемокодів, які керують роботою процесора. У процесі трансляції команди асемблера перетворяться у відповідні машинні команди мікропроцесора. Одній команді асемблера, в більшості випадків,відповідає одна машинна команда.

Директиви або псевдооператори організують роботу асемблера й визначають вплив на команди й дані. Псевдооператори визначають сегменти пам'яті, зовнішні посилання, дані, формувати підпрограми інше.

Макрокоманди представляють собою послідовність символів, які заміщаються в програмі іншою послідовністю під час трансляції.

Припустимими символами при написанні тексту програм є:

  • всі латинські букви: A-Z, a-z. Великі й малі літери вважаються еквівалентними;

  • цифри від 0 до 9;

  • знаки ?, @, $, _, &;

  • розділювальні знаки , . [ ] ( ) < > { } + / * % ! ' " ? \ = # ^.

2.4 Формат команд і псевдооператорів мови асемблера

Синтаксична конструкція команди мовою асемблера може мати до 4 полів і представлена наступним виразом:

[Мітка:] Мнемокод [Операнд_1] [,Операнд_2] [;Коментар]

Синтаксична конструкція псевдооператора мовою асемблера може мати до 4 полів і представлена наступним виразом

[Ідентифікатор] Псевдооператор [Операнд_1] [,Операнд_2] [;Коментар]

Обов’язковими є поля мнемокода та псевдооператора. Інші поля необов’язкові і їх використання залежить від будови окремих команд та директив.

Поле мітки.Поле мітки не є обов'язковим і служить для присвоєння команді асемблера імені, по якому можна звертатися до даної команди. Мітка може містити до 32 символів й завжди закінчується «двокрапкою». Припустимими символами при написанні мітки є:

  • всі латинські букви: A-Z, a-z. При цьому заголовні й малі літери вважаються еквівалентними;

  • цифри від 0 до 9;

  • знаки ?, @, _, «крапка», $

При описі мітки необхідно дотримуватися наступних правил:

  • мітка не може починатися із цифри;

  • не можна застосовувати пробіл в імені мітки;

  • якщо застосовується крапка, вона повинна бути першої в імені мітки;

  • не можна застосовувати зарезервовані слова, назви регістрів.

Поле мнемокода. Поле мнемокода містить умовні позначки команди й може містити від 2-ох до 6-и символів. Асемблер містить внутрішню таблицю, що здійснює трансляцію мнемокода в машинну команду. Крім того мнемокод може визначати наявність операндів, їхню кількість, тип.

Поле операндів.Поле операндів – частини команди асемблера, що позначають об'єкти, над якими виконуються дії. Операнди асемблера описуються виразом із числовими й текстовими константами, мітками й ідентифікаторами змінних з використанням знаків операцій і деяких зарезервованих слів. Операнди відокремлюються від мнемокода пробілом, а між собою – комами. Перший операнд визначає приймач даних, а другий - передавач або джерело даних. Дуже часто в процесі виконання операцій уміст приймача змінюється, а передавача – залишається незмінним.

Поле коментарів. Поле коментарів містить опис програми або окремих її елементів і допомагає розбиратися з роботою програми. Поле коментарів відокремлюється від попереднього поля мінімум одним пробілом і починається «крапкою з комою». Коментар ігнорується асемблером при трансляції, але залишається в листингі програми. Коментар може займати окремо цілий рядок.

Поле ідентифікаторівПоле ідентифікаторів застосовується в псевдооператорах і має призначення аналогічне полю міток у командах. У відмінності від міток, після ідентифікаторів не ставиться «двокрапка».

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

Соседние файлы в папке asm_лр_ир_copy