Команди переміщення даних - Студопедія

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

Усі команди за функціональною ознакою поділено на групи: переміщення даних; обробка даних; керування програмою; введення – висновок та спеціальні команди.

Описуючи систему команд з використанням мнемоніки, необхідно враховувати можливості конкретної мови для утворення допустимих скорочень. Звичайно, тим, хто вперше стикається з мікропроцесорами та їх програмуванням, хочеться, щоб усі мнемонічні скорочення були зроблені на основі їхньої рідної мови, а не якоїсь іноземної. Але, наприклад, як скоротити команди ВВЕДЕННЯ і ВИСНОВОК (аналогічно ВХІД і ВИХІД)? Англійською вони записані IN-OUT, тобто. Одночасно досить короткими, і розрізняються на стільки, що можуть бути скорочені до однієї літери (I/O). в українському варіанті скорочення, на жаль, зовсім неможливе.

Слову ВИСНОВОК (ВИХІД) особливо не пощастило, тому що в командах арифметичних дій та управління програмою зустрічаються скорочення, що відрізняються тільки однією літерою, наприклад, ВИЧЕТ, ВИКОНАТИ, ВИКЛИКАТИ та ін. Різниця в одній літері для трьох-або чотирилітерних скорочень дуже часто призводить до прикрим помилкам і важковиявленим друкарським помилкам. У цьому полягає одна з причин того, чому програмісти часто вважають за краще використовувати як мнемокоди скорочення англійських термінів, хоча в початковий період їх важко запам'ятати.

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

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

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

У мнемоніці команди вказуються умовні позначення РОН, у яких перебувають приймач і джерело, між собою ці позначення обов'язково поділяються комою. Наприклад, MOV, означає «перенести вміст регістру в регістр З»; вміст регістру залишається без зміни. При трансляції команди в об'єктний код умовні позначення регістрів замінюються їх двійковими номерами. Усі регістри загального призначення, пам'ять та акумулятор мають постійні номери.

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

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

Прибезпосередньому поданні можливе лише завантаження даних.

Команди завантаження покажчиків пам'яті та запам'ятовування даних. Для завантаження початкових значень у внутрішні покажчики пам'яті (ініціалізації) застосовують трибайтну команду з безпосереднім поданням операндаLXIrp, де Rр означає регістрові пари ВС, DE, HL або покажчик стека SP-Stack Pointer. Наприклад ,LХL H 0900 означає помістити в регістр L число 00, а регістр Н - число 09, отже, в регістрову пару завантажити покажчик на комірку пам'яті 0900.

Команди міжреєстрового обміну. ​​ Особливостями мікропроцесора КР.580ІK80A є однобайтні команди передачі 16-бітових операндів. Є спеціальна командаXCHG (скорочення англійського слова Exshange), яка здійснює обмін вмістом регістрів DE та HL:

(H) ↔ (D), (L) ↔ (E).

У ряді випадків дуже зручною виявляється спеціальна однобайтна команда XTHL (exchange HL):

( L ) ↔ ( [ SP ] ) , ( H ) ↔ ( [ SP + 1 ] ) ,

вона виконує обмін вмістом регістрів HL і двох верхніх осередків стека, тобто останніх, завантажених у стек даних. Вміст покажчика стека під час виконання командиXTHL не змінюється. До речі, командаXTHL - найдовша в системі команд мікропроцесора КР.580ІK80A, для її виконання потрібно 18 машинних тактів.

Зміст регістрової пари HL передається в покажчик стека командоюSPHL або програмний лічильник командоюPCHL. Тут, як і раніше, першому місці стоїть одержувач інформації (приймач), але в другому - джерело даних.

Команди операцій зі стеком. Для встановлення покажчика стека на початкове значення використовують згадану раніше командуLXI SP. Завдяки такій установці як стек може бутизастосовано будь-яку область оперативної пам'яті мікропроцесорної системи.

Для правильної роботи стека команди PUSH і POP обов'язково повинні бути парними. Дотримання цього принципу лягати повністю на програміста, так як процедури завантаження в стек і витягування зі стека виконуються мікропроцесором не автоматично, а лише за командами у програмі.

Чи не знайшли те, що шукали? Скористайтеся пошуком: