37803

Ознайомлення з особливостями застосування на мові Асемблера системи команд керування програмою та процесором, вивчення команд умовного розгалуження

Лабораторная работа

Информатика, кибернетика и программирование

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

Украинкский

2013-09-25

81 KB

1 чел.

PAGE  2

Міністерство освіти України

Національний технічний університет України

Кафедра звукотехніки і реєстрації інформації

Лабораторна робота №9

з курсу: «Основи мікропроцесорної техніки»

на тему: «Ознайомлення з особливостями застосування на мові Асемблера системи команд керування програмою та процесором, вивчення команд умовного розгалуження»

Виконав:

         Перевірив:

ст. 4-го курсу

                              асист. Тітков Д.В.

група ДВ-61

 асист. Крупченко А.А.

Непочатих В. Ю.

   

Київ 2009

Мета роботи

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

Завдання

Сформувати на асемблері Basic – програму

 10 LET A=7

 20 FOR B=1 TO 8

 30 IF B<4 THEN GO SUB 60

 40 NEXT B

 50 GO TO 80

 60 LET A=A+B

 70 RETURN

 80 STOP

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

Основні команди керування програмою та процесором

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

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

  1.  JMP(opr)

Тлумачення. Ця команда реалізує операцію безумовного переходу. При виконанні цієї команди компілятором програми мікроконтролера, відбувається завантаження у програмний лічильник PC адреси наступної команди, що задається полем (орr). Іншими словами, адреса переходу та відповідно зміна керування програмою визначається полем операнда. $addr -»(PC)

2) JSR (opr)

Тлумачення. Ця команда реалізує операцію переходу до підпрограми за дійсною адресою. Тобто команда завантажує у програмний лічильник PC адресу початку підпрограми.

3) RTS

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

4) SWI

Тлумачення. Ця команда реалізує програмне переривання програми. Вона виконує завантаження у стек вміст програмного лічильника PC, а також дані що знаходяться в регістрах процесора IX, 1Y, А, В, CCR. При виконанні цієї команди заповнюються 9 комірок стекової пам'яті.

5) RTI

Тлумачення. Команда виходу з переривання. Вона реалізує відновлення вмістів регістрів CCR, А,В, IX, IY, PC зі стеку, які були до виконання запиту на переривання.

6)  RSP

Тлумачення.   Команда   здійснює   встановлення  у   регістрі  стеку  SP початкового значення $00FF.

$00FF -> (SP)

7) NOP

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

8) WAIT

Тлумачення. Перехід процесора мікроконтролера у режим очікування (зупинка процесора).

9) STOP

Тлумачення.  Перехід процесора мікроконтролера у режим останова (зупинення ГТІ).

Особливість. Команди, що наведені у п.8 та п.9 дозволяють виконувати операцію переривання.

Основні команди умовного розгалуження

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

1)        вмісту програмного лічильника PC;

2)       числа $0002;

3)        відносного зміщення у 1 байт (rel8 -> 2 символи).

Якщо ж умова розгалуження не виконується то програмний лічильник переміщується на 2 позиції (2 байта, оскільки команди умовного розгалуження є командами на які використовується 2 машинні цикли процесора)

Формат команд умовного розгалудження: В_ __ геІ8

-де 2 позиції заповнюються у відповідності с синтаксисом команди.

Таблиця 1 - Команди розгалудження асемблера мікроконтролера

Test

Boolean

Mnemonic

Opcode

Complementary

Branch

Comment

r>m

Z+(NV)=1

BGT

2E

rm

BLE

2F

Signed

rm

N+V=0

BGE

2C

r<m

BLT

2D

Signed

r=m

Z=1

BEQ

27

rm

BNE

26

Signed

rm

Z+(NV)=0

BLE

2F

r>m

BGT

2E

Signed

r<m

(NV)=1

BLT

2D

rm

BGE

2C

Signed

r>m

C+Z=0

BHI

22

rm

BLS

23

Unsigned

rm

C=0

BHS/BCC

24

r<m

BLO/BCS

25

Unsigned

r=m

Z=1

BEQ

27

rm

BNE

26

Unsigned

rm

C+Z=1

BLS

23

r>m

BHI

22

Unsigned

r<m

C=1

BLO/BCS

25

rm

BHS/BCC

24

Unsigned

Carry

C=1

BCS

25

No Carry

BCC

24

Simple

Negative

N=1

BMI

2B

Plus

BPI

2A

Simple

Overflow

V=1

BVS

29

No Overflow

BVC

28

Simple

r=0

Z=1

BEQ

27

Z0

BNE

26

Simple

Always

BRA

20

Never

BRN

21

Unconditional

1) ВСС (орr)

Тлумачення.  Перехід за адресою,  що вказується у полі  (орr) та у відповідності з вище наведеним правилом, якщо ознака С у регістрі CCR (ознака переносу) прийме значення (С)~0. Перехід за розрахованою адресою, якщо (С)= "0"

2) BCS (opr)

Тлумачення.    Перехід   за   адресою   у   випадку,    якщо   попередня арифметична операція призвела до переносу, тобто у регістрі ознак CCR прапорець С у положення Т. Перехід за розрахованою адресою, якщо (С)=”1”

3) BNE (орr)

Тлумачення. Перехід за адресою, у випадку шли результат попередньої операції ненульовий, тобто прапорець Z у регістрі ознак CCR приймає значення "0". Перехід за розрахованою адресою, якщо (Z)=”0

4)BEQ(opr)

Тлумачення.    Перехід   здійснюється   у    випадку    якщо    результат попередньої операції нульовий, тобто прапорець Z у регістрі ознак CCR приймає значення "1". Перехід за розрахованою адресою, якщо (Z)= ”1”

5) BPL (орr)

Тлумачення.   Здійснюється   перехід,   якщо   результат   попередньої операції додатній, тобто прапорець N у регістрі ознак CCR приймає значення "0". Перехід за розрахованою адресою, якщо (N)="0"

6) ВМІ (ОРR)

Тлумачення. Здійснюється перехід, якщо результат попередньої операції від'ємний, тобто прапорець N у регістрі ознак CCR приймає значення ”1”. Перехід за розрахованою адресою, якщо (N)="1"

7) BVC (орr)

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

переповнення, тобто ознака V у регістрі CCR приймає

нульове значення.

Перехід за розрахованою адресою, якщо (V)=“0”

8) BVS (орr)

Тлумачення.   Перехід   за   адресою,   якщо   в   результаті   виконання попередньої операції  виникло  переповнення  розрядів, тобто ознака V у регістрі CCR прийняла значення "Г. Перехід за розрахованою адресою, якщо (V)="1"

9) BRA (opr)

Тлумачення.   Безумовний   перехід   за  адресою,   і   крім   цього  вміст програмного лічильника PC змінюється наступним чином: (РС)+2+геl8=>(РС)

10)BRN(opr)

Тлумачення. Команда не виконуваного переходу. Іншими словами відбувається зміна вмісту програмного лічильника на 2 байти.

11) BGE (орr) {Перехід, якщо більше чи дорівнює)

Тлумачення.   Перехід   за   визначеною   адресою   відбудеться   якщо (АСС)≥(М) (за вмістом у двійкових цифрах).

(РС)+2+геl8=> (РС)

12) BGT (орr) {Перехід, якщо більше}

Тлумачення.   Перехід   за   визначеною   адресою   відбудеться   якщо (АСС)>(М) (за вмістом у двійкових цифрах).

(РС)+2+геІ8=>(РС)

13) BLE (орr) {Перехід, якщо менше чи дорівнює}

Тлумачення.   Перехід   за   визначеною   адресою   відбудеться   якщо (ACC)≤(M) (за вмістом у двійкових цифрах). (РС)+2-rеІ8=>(РС)

14) BLO (opr) {Перехід, якщо менше}

Тлумачення.   Перехід   за   визначеною   адресою   відбудеться   якщо (АСС)<(М) (за вмістом у двійкових цифрах). (РС)+2+геl=> (РС)

Основні команди, що дозволяють сформувати цикл в тілі програми

1)СВА

Тлумачення. Команда порівняння вмісту акумулятора А з вмістом акумулятора Б. В даному випадку здійснюється віднімання операндів, які знаходяться у регістрах/акумуляторах А та В відповідно, без запису цього результату віднімання, але зі встановленням у регістрі CCR ознак N.Z у відповідності з отриманим значенням,

2) СМРА (орr)

Тлумачення. Здійснюється порівняння між вмістом акумулятора А та вмістом комірки пам'яті, адреса якої задається у полі (орr). Результатом цього порівняння є встановлення відповідної ознаки N,Z у регістрі CCR. Ця команда також дозволяє вказувати безпосередньо операнд для порівняння.

3) СМРВ (орr)

Тлумачення. Здійснюється порівняння між вмістом акумулятора В та вмістом комірки пам'яті, адреса якої задається у полі (орr). Результатом цього порівняння є встановлення відповідної ознаки H,Z у регістрі CCR. Ця команда також дозволяє аказувати безпосередньо операнд для порівняння.

4) CPD (орr); CPX (opr); CPY (орr);

Тлумачення. Відбувається порівняння вмісту регістрів D, IX, IY з даними, що містяться у полі операнда. У полі (орr) можна вказати, або число (константу) у 16-ковій системі числення, або

адресу однієї комірки пам'яті (де міститься старший байт даних), а молодший байт міститься у сусідній комірці.

5) TST (орr)

Тлумачення. Команда тестування на знак, нульове значення вмісту комірки пам'яті, адреса якої задається у полі (орr). Результатом виконання цієї команди є встановлення у регістрі CCR відповідник ознак N,Z.

6) TSTA; TSTB;

Тлумачення. Команда тестування на знак, нульове значення вмісту акумулятора А, В. Результатом виконання цієї команди є встановлення у регістрі CCR відповідник ознак N,Z.

7) INC (opr)

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

8) INCA; INCB; INCX; INCY; INCS;

Тлумачення.   Здійснюється  збільшення  на  одиницю  вмісту  регістрів A,B,IX,IY,SP.

9) DEC (opr)

 Відбувається зменшення на одиницю вмісту комірки пам'яті даних, адреса якої задається командою.

10) DECA; DECB; DECX; DECY; DECS;

Тлумачення,   Здійснюється  зменшення  на  одиницю  вмісту  регістрів A,B,IX,IY,SP.

Висновки

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

Перелік посилань

1. ДСТУ 3008-95. Документація. Звіти у сфері науки і техніки. Структура і    правила оформлення. – К.: Видавництво стандартів, 1995. – 37 с.

2. Основи мікропроцесорної техніки: метод. вказівки до викон. лаборатор.       

робіт/ Уклад.: В.Б. Швайченко, К.О. Трапезон, О.П. Чеверда. – К.:     НТУУ “КПІ”, 2008. – 60 с.


 

А также другие работы, которые могут Вас заинтересовать

68916. Завантаження файлів 48 KB
  Завантаження файлів на сервер по протоколу HTTP здійснюється набагато чаші, чим ви можете подумати: Web-інтерфейси поштових сервісів дозволяють додати до листа вкладення, а для цього потрібно спершу завантажити файл на сервер, а тільки після цього додавати до листа.
68917. Масиви та списки. Операції над масивами 118 KB
  Масив — це впорядкований набір даних. Кожен елемент масиву має індекс або ключ. Індекс (ключ) служить для однозначної ідентифікації елементу усередині масиву. У одному масиві не може бути двох елементів з однаковими індексами.
68918. Користувацькі функції 45 KB
  У будь-якій мові програмування існують підпрограми. У мові С вони називаються функціями, в асемблері — підпрограмами і викликаються інструкцією CALL, а в мові Pascal існує навіть два види підпрограм: процедури і функції.
68919. Передача параметрів функції 40 KB
  При виклику функції func потрібно обов’язково вказати всі три параметри оскільки вони є обов’язковими. У РНР функції можуть володіти необов’язковими параметрами або параметрами за умовчанням про них ми поговоримо трохи пізніше. Функція не може змінити параметрзначення тобто він доступний...
68920. Операції над рядками. Робота з датою та часом 97 KB
  Чим же хороші самі рядки в РНР На відміну від С переваги PHPрядків полягають в наступному: Рядок може містити будьякі символи. Нагадаю що рядок не може містити символи з кодом 0 оскільки перший такий символ трактується як кінець рядка.
68921. Робота з файлами та каталогами 71.5 KB
  Як і в будь-якій мові програмування, робота з файлом здійснюється в три етапи: Відкриття файлу — при цьому повертається ціле число — ідентифікатор (дескриптор) файлу. Подальше звернення до файлу здійснюється через дескриптор, а не по імені. Обробка файлу (читання або запис). Закриття файлу.
68922. СУБД MySQL. Поля та їх типи 77.5 KB
  Програмне забезпечення яке управляє базою даних створює нові бази даних таблиці а також дозволяє використовувати вже створені об’єкти називається системою управління базою даних СУБД. Проте для написання нескладних сценаріїв роботи з базою даних приведеного матеріалу буде досить.
68923. Створення таблиць. Робота з таблицями 58.5 KB
  Примітка. Детально про ключі ми поговоримо пізніше, а поки використовуватимемо таблиці без ключів. Як модифікатори можна використовувати наступні значення: NOT NULL — поле не може містити невизначеного значення (NULL), тобто поле повинне явно ініціалізувати; PRIMARY KEY — поле буде первинним ключем...
68924. Функції РНР для роботи з MYSQL 100 KB
  Всі параметри функції є необов’язковими, оскільки значення за умовчанням можна прописати в конфігураційному файлі php.ini. Якщо ви хочете вказати інші ім’я MySQL-вузла, ім’я користувача і пароль, ви завжди можете це зробити. Параметр $hostname може бути вказаний у вигляді вузол: порт.