АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Алгоритми виконання команд

Читайте также:
  1. L Перевірка виконання домашньої задачі.
  2. Team kata male 8-13 years (Командне ката хлопці 8-13 років)
  3. Алгоритм виконання роботи
  4. Алгоритми з відкритим ключем виконуються повільно. Симетричні алгоритми принаймні в 1000 разів швидші алгоритмів з відкритим ключем.
  5. Алгоритми пошуку
  6. Алгоритми «швидкого» сортування
  7. Аналіз виконання договірних зобов'язань по відвантаженню продукції
  8. Безспірне списання коштів державного бюджету за бюджетною програмою для забезпечення виконання судових рішень та виконавчих документів
  9. В командном спарринге могут принимать участие только команды, участвовавшие в командных туль.
  10. В чому ви вбачаєте зміст поняття “соціальні ілюзії”?(Підготовка зазначеної доповіді є формою індивідуальної роботи; обов’язкова до виконання;форма виконання - письмова).
  11. В чому ви вбачаєте зміст поняття “соціальні ілюзії”?(Підготовка зазначеної доповіді є формою індивідуальної роботи; обов’язкова до виконання;форма виконання - письмова).

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

Всі команди поділяють на п’ять груп:

– команди пересилки даних – використовують для передачі даних із регістра у регістр або із пам’яті у регістр і навпаки;

– арифметичні команди – використовуються для додавання, віднімання, порівняння;

– логічні команди НІ, І, АБО і комплексні;

– команди переходів – використовуються для умовних і безумовних переходів, виклику підпрограм і повернення із них;

– команди управління, вводу-виводу і роботи із стеком – використовуються для уп­рав­ління перериваннями, вводом-виводом інформації і виконання команд переходів.

Команди пересилки даних:

Пересилка із регістру в регістр

MOV R 1, R 2 – переслати дані із регістра R 2 в регістр R 1. Довжина команди – 1 байт.

Наприклад, MOV А, С – переслати дані із регістру А в регістр С. Вміст регістру С при цьому не змінюється.

Безпосередня пересилка числа

MVI R, < байт > – вміст другого байту команди переслати в регістр R. Довжина ко­ман­ди – 2 байти.

Наприклад, MVI А, 56 – переслати число 56 в регістр А.

Завантаження регістра А із пам’яті

LDA < байт > < байт > – вміст комірки пам’яті, адреса якої знаходиться у другому і тре­тьому байті команди завантажити в регістр А. Довжина команди – 3 байти.

Наприклад, LDA 0950 – завантажити в регістр А вміст комірки пам’яті за номером 0950.

Увага! У трибайтних командах при запису команди в кодах завантажується спочатку молодший байт, а да­лі старший

Вивантаження вмісту регістру А у пам’ять

STA < байт > < байт > – вивантажити вміст регістру А в комірку пам’яті, номер якої позначено у другому і третьому байті команди. Довжина команди – 3 байти.

Наприклад, STA 0850 – вивантажити вміст регістру А в комірку пам’яті з номером 0850.

Арифметичні команди:

Команда додавання вмісту регістра

ADD R – вміст регістру R додати до вмісту регістру А. Результат

залишається в ре­гістрі А. Вміст регістру R при цьому не змінюється. Довжина команди – 1 байт.

Наприклад, ADD С – вміст регістру С додати до вмісту регістру А.

Команда безпосереднього додавання

ADI < байт> – вміст другого байту команди додати до вмісту регістру А. Довжина ко­манди – 2 байти.

Наприклад, ADI 24 – число 24 додати до вмісту регістру А.

Команда віднімання вмісту регістра

SUB R – вміст регістру R відняти від вмісту регістру А. Результат залишається в ре­гіс­т­рі А. Вміст регістру R при цьому не змінюється. Довжина команди – 1 байт.

Наприклад, SUB С – вміст регістру С відняти від вмісту регістру А.

Команда безпосереднього віднімання

SUІ < байт> – вміст другого байту команди відняти від вмісту регістру А. Довжина ко­манди – 2 байти.

Наприклад, SUІ 32– число 32 відняти від вмісту регістру А.

Команда збільшення вмісту регістра на одиницю

INR R – додати одиницю до вмісту регістру R. Довжина команди – 1 байт.

Наприклад, INR А – додати одиницю до вмісту регістру А.

Команда зменшення вмісту регістру на одиницю

DCR R – відняти одиницю від вмісту регістру R. Довжина команди – 1 байт.

Наприклад, DCR C – додати одиницю до вмісту регістру C.

Команда порівняння із вмістом регістру

СМР R – порівняти вміст регістру R з вмістом регістру А. При виконанні команди вміст регістру R віднімається від вмісту регістру А. Вміст регістру R при цьому не зміню­ється. За результати віднімання установлюються стани при виконанні таких умов: стан знаку S, якщо знаковий біт результату операції дорівнює одиниці (число від’ємне),стан ну­ля Z, якщо результат операції дорівнює нулю, стан додаткового переносу AC, якщо є пере­ніс із третього розряду, стан парності P, якщо результат вміщує парне число одиниць, стан переносу CY, якщо є переніс (при складанні) або займання (при відніманні) із старшого роз­ряду. Довжина команди – 1 байт

Наприклад, СМР С (в регістрі С записано число 24, в регістрі А – число В 3). Виконан­ня: В 3 – 24 = 8 F. Записуємо результат у двійковому коді 10001111. S = 0 (знаковий біт ре­зультату операції дорівнює нулю, так як результат операції додатний), Z = 0 (так як ре­зультат операції не дорівнює нулю), АС = 0 (так як переніс із третього розряду відсутній), Р = 0 (так як результат операції непарний), CY = 1 (так як є займання із старшого розряду).

Команда порівняння із числом

СРІ <байт> – порівняти вміст регістру А із числом, що знаходиться у другому байті. Довжина команди – 2 байти.

Наприклад, СРІ АВ (в регістрі А записано число С 9). Виконан­ня: C 9 – AB = 1 E. Запи­суємо результат у двійковому коді 00011110. S = 0 (знаковий біт ре­зультату операції дорів­нює нулю, так як результат операції додатний), Z = 0 (так як ре­зультат операції не до­рівнює нулю), АС = 0 (так як немає переносу із третього розряду), Р = 1 (так як ре­зуль­тат операції парний), CY = 1 (так як є займання із старшого розряду).

Логічні команди:

Команда НІ (інверсія)

СМА <байт> – виконати операцію НІ з числом, що знаходиться у другому байті. Опе­ра­ція виконується із кожним розрядом окремо. Довжина команди – 2 байти.

Наприклад, СМА 43. Виконання: записуємо число у двійковому коді 01000011. Вико­нуємо інверсне перетворення 10111100. Переводимо у шістнадцятковий код. Відповідь – ВС.

Команда І (логічне множення)

ANA R – виконати операцію І між числами, що знаходяться у регістрі А і в регістрі R. Опе­ра­ція виконується із кожним розрядом окремо. Довжина команди – 1 байт

Наприклад, ANA Е (в регістрі А записано число 53, в регістрі Е число 9 А). Виконання: записуємо числа у двійковому коді 53 – 01010011, 9 А – 10011010. Вико­нуємо логічне мно­ження за матрицею таблиці 4.1

Таблиця 4.1

Матриця виконання команди ANA R.

 

Дані   Знач ення  
Перше число        
Друге число        
Результат        

 

Результат: 00010010. Переводимо у шістнадцятковий код. Відповідь – 12.

Команда АБО (логічне додавання)

ОRA R – виконати операцію АБО між числами, що знаходяться у

регістрі А і в регістрі R. Опе­ра­ція виконується із кожним розрядом окремо. Довжина команди – 1 байт

Наприклад, ОRA С (в регістрі А записано число В 9, в регістрі С число 39). Виконання: записуємо числа у двійковому коді В 9 – 10111001, 37– 00110111. Вико­нуємо логічне мно­ження за матрицею таблиці 4.2.

Таблиця 4.2

Матриця виконання команди ОRA R.

 

Дані   Знач ення  
Перше число        
Друге число        
Результат        

 

Результат: 10111111. Переводимо у шістнадцятковий код. Відповідь – ВF.

Команда АБО – НІ

ХRA R – виконати операцію АБО – НІ між числами, що знаходяться у регістрі А і в регістрі R. Опе­ра­ція виконується із кожним розрядом окремо. Довжина команди – 1 байт.

Наприклад, ХRA В (в регістрі А записано число 74, в регістрі С число 93). Виконання: записуємо числа у двійковому коді 74 – 01110100, 93– 10010011. Вико­нуємо логічне множення за матрицею таблиці 4.3.

Таблиця 4.3. Матриця виконання команди ХRA R.

 

Дані   Знач ення  
Перше число        
Друге число        
Результат        

 

Результат: 11100111. Переводимо у шістнадцятковий код. Відповідь – Е 7.

 

Команди переходів:

Безумовний перехід до виконання команди

JMP <байт> <байт> – перейти до виконання команди, адреса якої знаходиться у дру­гому і третьому байті. Довжина команди – 3 байти.

Наприклад, JMP 080 А – перейти до виконання команди, яка знаходиться за адресою 080 А.

Умовний перехід до виконання команди

J <умова> <байт> <байт> – перейти до виконання команди, адреса якої знаходиться у дру­гому і третьому байті, якщо умова виконується. Довжина команди – 3 байти. В залеж­но­сті від умов команди мають вигляд:

– перехід, якщо є переніс;

JNС – перехід, якщо переносу немає;

JZ – перехід, якщо результат дорівнює нулю;

JNZ – перехід, якщо результат не дорівнює нулю;

JP – перехід, якщо результат додатний;

JM – перехід, якщо результат від’ємний;

JPE – перехід при парності;

JPO – перехід при непарності.

Наприклад, JNZ 0908– перейти до виконання команди, яка знаходиться за адресою 0908, якщо результатне дорівнює нулю.

Команди безумовного переходу до підпрограм

CALL <байт> <байт> – перейти до виконання підпрограми, яка починається з адреси, що знаходиться у дру­гому і третьому байті. Довжина команди – 3 байти.

Наприклад, CALL 0850– перейти до виконання підпрограми, яка починається з адреси 0850.

Команди умовного переходу до підпрограм

C <умова> <байт> <байт> – перейти до виконання підпрограми, яка починається з адреси, що знаходиться у дру­гому і третьому байті, якщо умова виконується. Використо­вуються також умови, як і при переході до команд. Довжина ко­манди – 3 байти.

Наприклад, CP 0950– перейти до виконання підпрограми, яка починається з адреси 0950, якщо результат додатний.

Команди безумовного повернення з підпрограм

RET – повернутися до виконання основної програми. Адреса повернення знаходиться в регістрі стеку. Довжина команди – 1 байт.

Команди умовного повернення з підпрограм

R <умова> – повернутися до виконання основної програми, якщо умова виконується. Адреса повернення знаходиться в регістрі стеку. Довжина команди – 1 байт.

Наприклад, RZ – повернутися до виконання основної програми, якщо результат дорів­нює нулю.

Команди управління, вводу-виводу і роботи із стеком:

Команда зупинки

HLT – зупинити виконання програми. Довжина команди – 1 байт.

Команда відсутності операції

NOP – відсутність операції. Довжина команди – 1 байт

Команди введення-виведення

IN <байт> – ввести інформацію з порту введення, адреса якого наведена у другому байті. Довжина команди – 2 байти.

Наприклад, IN F 8– ввести інформацію з порту введення за адресою F 8.

OUT <байт> – вивести інформацію у порт виведення, адреса якого наведена у другому байті команди. Довжина команди – 2 байти.

Наприклад, IN FВ – вивести інформацію у порт введення за адресою .

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.)