Інформація про навчальний заклад
ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
ІСМ
Кафедра:
Не вказано
Інформація про роботу
Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи
Частина тексту файла
Міністерство освіти і науки УкраїниНаціональний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота №6
з дисципліни «Операційні системи»
«Система команд. Арифметичні команди. Обчислення цілочисельних
арифметичних виразів з використанням команд MUL, IMUL, DIV, IDIV,
ADD, ADC, INC, SUB, SBB, DEC, NEG, CBW, CWD»
КИЇВ-2022
Лабораторна робота №6
Мета роботи: програмування блоку обчислення арифметичних виразів на прикладі реалізації математичних формул з використанням арифметичних команд асемблера за індивідуальними завданнями.
Теоретична частина
6.1.1 MOVe operand - пересилання операнда. MOVe operand to/from system registers - пересилання операнда у системні регістри (або з них)
Схема команди: MOV приймальник, джерело
Призначення: пересилання даних між регістрами або регістрами та пам’яттю. Команда має обмеження:
копіювання здійснюється з другого операнда у перший;
значення другого операнда не змінюється;
обидва оператора не можуть бути з пам’яті;
лише один з операндів може бути сегментним, приймальником не може бути регістр CS; не можна пересилати сегментні регістри:
MOV ES, DS
Треба розписати:
MOV AX, DS
MOV ES, AX
не можна напряму ініціалізувати сегмент даних
DSEG SEGMENT
………………………
MOV DS, DSEG
Треба розписати:
MOV AX, DSEG
MOV DS, AX
довжина обох операндів повинна бути однаковою.
Команда Mov має розширену можливість: для випадку, коли довжина операндів різна використовується директива значення типу:
Тип PTR вираз
Оператор PTR може використовуватися з елементами даних, мітками інструкцій. Він використовує специфікатори типів Byte, Word, Dword, Tbyte для явного зазначення типу DB, DW, DD, DQ, DT для змінних. Він також використовує специфікатори типів NEAR, FAR, PROC для явного зазначення відстані до мітки переходу. Таким чином, тип – це специфікатор типу, наприклад, BYTE, а вираз – це змінна або константа.
6.2 Арифметичні команди
6.2.1 Команда складання ADD (ADDition)
Синтаксис: ADD приймальник, джерело
Символьний код: ADD регістр/пам’ять, регістр/пам’ять/безпосереднє значення
Призначення: складання двох операндів джерела та приймальника розмірністю байт, слово або подвійне слово, записати результат складання за адресою першого операнда, встановити прапорці.
Ця операція є коректною при використанні операндів: регістр-регістр, регістр-пам’ять, пам’ять-пам’ять, пам’ять-безпосереднє значення.
Виконання команди додавання впливає на стан прапорців:
CF (Carry) – перенесення (зі старшого знакового розряду), PF (Parity) – парність, AF (Auxiliary) – допоміжне перенесення, ZF (Zero) – нуль, SF (Sign) – мінус, OF (Overflow) – переповнювання.
Команда ADD використовується для складання двох цілочисельних операндів. Якщо результат складання виходить за межі першого операнда (виникає переповнювання), то врахувати цю ситуацію слід шляхом аналізу прапорця CF і подальшого можливого застосування команди ADC. При складанні слід врахувати можливість переповнювання.
6.2.2 Команда складання двох операндів з урахуванням перенесенням з молодшого розряда ADC (ADDition with Carry)
Синтаксис: ADС приймальник, джерело.
Символьний код: ADС регістр/пам’ять, регістр/пам’ять/безпосереднє значення
Впливає на прапорці AF, CF, OF, PF, SF, ZF
Результат заноситься у перший операнд, в залежності від результату встановлюються прапорці.
Логіка роботи команди: <приймальник>=<приймальник>+<джерело>+
Команда ADC використовується при складанні багаторозрядних двійкових чисел. Її можна використовувати як самостійно, так і спільно з командою ADD. При спільному використанні команди ADC з командою ADD складання молодших байтів/слів/подвойних слів здійснюється командою ADD, а вже старші байти/слова/подвойні слова складаються командою ADC, що враховує перенесення з молодших розрядів в старші.
6.2.3 Команда віднімання SUB (SUBtract)
Синтаксис: SUB операнд_1, операнд_2
Символьний код: S...
Завантаження файлу
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше