Система команд. Арифметичні команди

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
ІСМ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут ім. І. Сікорського» Кафедра автоматизації проектування енергетичних процесів і систем Лабораторна робота № 6 з дисципліни «Операційні системи» «Система команд. Арифметичні команди» Робота студента 1 курсу, ТР-15 Смірнова Максим Олекандровича Перевірила д.т.н., проф. Левченко Л.О. КИЇВ 2022 Мета роботи: програмування блоку обчислення арифметичних виразів на прикладі реалізації математичних формул з використанням арифметичних  команд асемблера за індивідуальними завданнями. Теоретичний опис роботи 6.1 Команди переміщення даних 6.1.1 MOVe operand Пересилання операнда MOVe operand to/from system registers Пересилання операнда у системні регістри (або з них) Схема команди: MOV приймальник, джерело Призначення: пересилання даних між регістрами або регістрами та пам’яттю. Команда має обмеження: • копіювання здійснюється з другого операнда у перший; • значення другого операнда не змінююється; • обидва оператора не можуть бути з пам’яті; • лише один з операндів може бути сегментним, приймальником не може бути регістр CS; не можна пересилати сегментні регістри. 6.2 Арифметичні команди 6.2.1 Команда складання ADD (ADDition) Синтаксис: ADD приймальник, джерело Символьний код: ADD регістр/пам’ять, регістр/пам’ять/безпосереднє значення Призначення: складання двох операндів джерела та приймальника розмірністю байт, слово або подвійне слово, записати результат складання за адресою першого операнда, встановити прапорці. Ця операція є коректною при використанні операндів: регістр-регістр, регістр-пам’ять, пам’ять-пам’ять, пам’ять-безпосереднє значення. 6.2.2 Команда складання двох операндів з урахуванням перенесенням з молодшого розряда ADC (ADDition with Carry) Синтаксис: ADС приймальник, джерело. Символьний код: ADС регістр/пам’ять, регістр/пам’ять/безпосереднє значення Впливає на прапорці AF, CF, OF, PF, SF, ZF Результат заноситься у перший операнд, в залежності від результату встановлюються прапорці. Команда ADC використовується при складанні багаторозрядних двійкових чисел. 6.2.3 Команда віднімання SUB (SUBtract) Синтаксис: SUB операнд_1, операнд_2 Символьний код: SUB регістр/пам’ять, регістр/пам’ять/безпосереднє значення Впливає на прапорці AF, CF, OF, PF, SF, ZF Команда призначена для віднімання цілочисельних операндів або для віднімання молодших частин значень багатобайтних операндів. Віднімання здійснюється за методом складання з двійковим доповненням: для другого операнда встановлюється додатковий код (біти інвертуються +1), а потім відбувається складання з першим операндом. Операнд_2 віднімається від операнда_1, результат записується в операнд_1. 6.2.4 Команда віднімання із зайняттям (заемом) SBB (SuBtract with Borrow) або віднімання з перенесенням Синтаксис: SBB операнд_1, операнд_2 Символьний код: SBB регістр/пам’ять, регістр/пам’ять/безпосереднє значення Команда призначена для виконання цілочисельного віднімання старших частин значень багатобайтних операндів з урахуванням можливого попереднього зайняття при відніманні молодших частин значень цих операндів, коли виконувалося попереднє віднімання командами SBB та SUB (за станом прапорця перенесення CF). 6.2.5 Команда множення двох цілих двійковихчисел без урахування знаку MUL (MULtiply) Команда перемножує два цілих числа без знаку. Синтаксис: MUL множник_1 Символьний код: MUL регістр/пам’ять. Команда MUL сприймає старший біт в якості біта даних , а не як біт знака. Алгоритм роботи команди залежить від формату операнда команди і вимагає явної вказівки місцеположення тільки одного співмножника, який може бути розташований в пам'яті або в регістрі (перший співмножник). 6.2.6 Команда множення двох цілих двійкових чисел з урахуванням знаку IMUL (Integer MULtiply) Команда виконує цілочисельне множення операндів з урахуванням їх знакових розрядів. Команда сприймає старші(перші ліворуч) біти чисел в якості знаків (0 – позитивне число, 1 – негативне число). Для виконання цієї операції необхідно наявність двох співмножників. Команда imul встановлює в нуль прапорці OF і CF, якщо розмір результату відповідає регістру призначення. Якщо ці прапори відмінні від нуля, то це означає, що результат дуже великий для відведених йому регістром призначення рамок і необхідно вказати більший за розміром регістр для успішного завершення даної операції множення. 6.2.7 Команда беззнакового ділення DIV (DIVide unsigned) Команда призначена для ділення двох двійкових беззнакових чисел. Синтаксис: DIV дільник (делитель) Смвольний код: DIV регістр/пам’ять Алгоритм роботи: Для команди необхідно задати два операнди — ділимого(делимого) і дільника(делителя), беззнакове ділиме ділить націло дільник. Ділиме задається неявно і розмір його залежить від розміру дільника, який вказується в команді. Ділення на нуль викликає переривання. 6.2.8 Команда знакового цілочисельного ділення ІDIV (Integer DIVide signed) Команда призначена для ділення двох двійкових чисел зі знаком, ділить знакове ділиме націло на знаковий дільник. Команда ІDIV сприймає в якості знака старші (перші ліворуч) біти (1- від’ємне число, 0 – позитивне число). Ділення на нуль викликає переривання. Синтаксис: ІDIV дільник (делитель) Смвольний код: DIV регістр/пам’ять Алгоритм роботи: Для команди необхідно задати два операнди — ділиме і дільник. Ділиме задається неявно, і розмір його залежить від розміру дільника, місцезнаходження якого вказується в команді. Завдання за варіантом: / Результати виконання роботи: Код програми: / / Трансляція, отримання виконуваного модуля й виконання програми: / Перевірка: / TD після запуску smirnov.exe: / / Лістинг: / / Висновок: під час виконання лабораторної роботи №6 я запрограмував блок обчислення арифметичних виразів на прикладі реалізації математичних формул з використанням арифметичних команд асемблера за індивідуальним завданням, яке обрав відповідно до варіанту.
Антиботан аватар за замовчуванням

16.05.2023 09:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!