Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Мова асемблера

Система команд

Лекція №3. Поняття системи команд МП. Використання мови Асемблера. Класифікація команд по функціональному призна ченню. Види адресації операндів в командах.

Тема 1.2. Система команд МП.

Група команд, які може виконувати МП, називається його системою команд. Система команд МП може містити як маленьку кількість (вісім) так і більшу кількість (200) основних команд.

Класифікація команд однієї системи може бути представлена наступним чином, рис.3.1

 

Основні Додаткові
Арифметичні
додавання, віднімання, інкрементування, порівняння, заперечення додавання з переносом, віднімання з займом, множення та ділення
Логічні
І, АБО, ВИКЛЮЧАЮЧЕ АБО, НЕ (заперечення), зсув вправо, зсув вліво арифметичний зсув вправо, циклічний зсув вправо та вліво, циклічні зсуви вправо та вліво з переносом та тестування
Команди передачі даних
завантаження (загрузка), розміщення, переміщення, введення (ввод), виведення (вивід) команди обміну, скидання та ініціалізації.
Команди розгалуження (команди прийняття рішень)
безумовний перехід; перехід, якщо нуль; перехід, якщо не нуль; перехід, якщо рівність; перехід, якщо нерівність; перехід, якщо додатне; перехід, якщо від’ємне. перехід, якщо більше чи менше; перехід, якщо зсув або ні; перехід, якщо переповнення або ні.
Команди виклику підпрограми
CALL – виклик CALL, якщо нуль; CALL, якщо не нуль; CALL, якщо додатне або не додатне
Інші команди
немає операції, помістити в стек, вийти зі стеку, очікування, зупинки, переривання активізації чи скидання, десяткової корекції.

 

Рис.3.1. Класифікація команд типової систеим команд

Систему команд мікропроцесора описують на мові асемблера.

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

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

Всі оператори записуються за допомогою символів коди ASCII.

Мітки відділяються від поля мнемоніки двокрапкою:

МІТКА: MOVA, В; Команда пересилки

Мітки починаються з букви і відрізняються першими п'ятьма символами. Не можна записувати однакову мітку в декількох операторах, проте в одному операторові можна записати зразу декілька різних міток. Мітками позначають лише тих операторів, на яких є заслання з інших операторів програми. При трансляції кожній мітці привласнюється 16-розрядна адреса першого байта поміченої команди:

JMP МІТКА; Команда переходу

МО V В, С;

… … … …

МІТКА: INR А; Помічений оператор

У полі операції записують мнемоніку команди. Мнемоніка відділяється від поля операндів як мінімум одним пропуском.

У полі операндів розміщують один або два операнди. У командах без операндів це поле вільне. Як операнди використовують імена регістрів і регістрових пар, мітки або безпосередні дані. Двійкові дані закінчуються символом В, вісімкові — Q, десяткові — D (може опускатися), шістнадцятиричні — Н; якщо в шістнадцятиричному числі перший знак — буква, то перед нею пишуть цифру 0. Приклад завантаження даних:

МІТКА: MVIA, ОЕН; шістнадцятиричних

MVIВ, 15; десяткових

MVI С, 15 Q; вісімкових

MVIL, 111В; двійкових

У операнд можна записувати один або два символи коди ASCII, які беруться в лапки. Після трансляції запису символів підставляються їх двійкові коди.

Значення операндів можна задавати виразами, які обчислюються під час трансляції:

МІТКА: MVI В, (30+40)/2

МОV 7/2+4, 04Н

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

До основних директив відносяться:

• управління трансляцією ORG, END;

• визначення даних і резервування в пам'яті області даних DB, DW, DS.

Директива ORG (с початку) використовується для установки початкової адреси програми:

МІТКА: ORG 0800Н

При трансляції асемблер привласнює своєму лічильнику адреси значення 0800Я; за цією адресою в програмі буде розташований перший байт команди або даних. Якщо на початку програми директива ORG відсутня, то лічильнику адреси привласнюється нульове значення. Якщо в директиви ORG є мітка, то їй привласнюється адреса елементу пам'яті, наступної за останнім байтом об'єктної коди попереднього оператора.

Директива END (кінець) записується в останньому рядку вихідної програми і повідомляє асемблер про її завершення:

МІТКА: END

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

Директиву DB (визначення байтів) використовують для запису в пам'ять масиву однобайтових даних:

МІТКА: DB СПИСОК

Операнд СПИСОК може бути послідовністю байтів даних, відокремлених один від одного комами, або символів, узятих в лапки. Якщо в директиві DB використовується мітка, то їй привласнюється адреса першого байта масиву даних. Використання міток в директиві DB дозволяє організувати символічну адресацію даних:

МІТКА1: DB 15, 1, 24, 50; Запам'ятати чотири байти даних

МІТКА2: DB " Рядок "; Запам'ятати п'ять символів

У першій директиві число 15 запам'ятовується за адресою МЕТКА1, число 1 — за адресою МІТКА 1+1 і т. д..

Директиву DW (визначення слова) використовують для запису в пам'ять масиву двобайтових даних:

МІТКА: DW СПИСОК

Операнд СПИСОК задає послідовність 16-розрядних даних. При виконанні директиви DW молодший байт першого даного запам'ятовується за поточною адресою (адреса мітки), а старший байт — за адресою на одиницю більше. Потім ці дії виконуються для наступних даних:

DATA: DW 1100Н, 0222Н

В даному прикладі число 1100Н запам'ятовується за адресою DATA, Data+l, а число 0222Н — за адресою Data+2, Data+3. Початкова адреса може задавати директива ORG.

Директиву DS (визначення пам'яті) використовують для резервування області пам'яті для даних:

МІТКА: DS ЧИСЛО

Значення операнда ЧИСЛО визначає кількість елементів (байтів) пам'яті, що резервуються для запам'ятовування даних. Вміст цієї області не визначається. Якщо в директиві DS використовують мітку, то їй привласнюють адресу першого байта резервованої області пам'яті:

TABLE: DS 64; Резервують 64 байти даних


Читайте також:

  1. Синтаксис команд мовою асемблера




Переглядів: 1766

<== попередня сторінка | наступна сторінка ==>
Архітектура мікропроцесорів | Формати команд і даних. способи адресації

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.029 сек.