Міністерство освіти і науки України
Національний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота № 6
з дисципліни «Операційні системи»
«Арифметичні команди»
Робота студента1 курсу, ТР-15
Черкас Оксани
Перевірила д.т.н., проф. Левченко Л.О.
КИЇВ 2022Мета роботи.
Програмування блоку обчислення арифметичних виразів на
прикладі реалізації математичних формул з використанням арифметичних
команд асемблера за індивідуальними завданнями.
Короткий теоретичний опис роботи
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 вираз.
ADD приймальник, джерело
Символьний код: ADD регістр/пам’ять, регістр/пам’ять/безпосереднє значення
Призначення: складання двох операндів джерела та приймальника розмірністю байт, слово або подвійне слово, записати результат складання за адресою першого операнда, встановити прапорці.
Ця операція є коректною при використанні операндів: регістр-регістр, регістр-пам’ять, пам’ять-пам’ять, пам’ять-безпосереднє значення. Виконання команди додавання впливає на стан прапорців:
CF (Carry)– перенесення (зі старшого знакового розряду; наприклад, для байта в 9-му розряді при виконанні команди додавання з’явилася 1), PF (Parity)– парність, AF (Auxiliary)- допоміжне перенесення, ZF (Zero)– нуль, SF (Sign)– мінус, OF (Overflow)– переповнювання.
Команда ADD використовується для складання двох цілочисельних операндів. Якщо результат складання виходить за межі першого операнда (виникає переповнювання), то врахувати цю ситуацію слід шляхом аналізу прапорця CF і подальшого можливого застосування команди ADC. Наприклад, складемо значення в регістрі АХ і області пам'яті CHН. При складанні слід врахувати можливість переповнювання.
ADD AX, CНН ; додати значення з області пам’яті СНН до регістру АХ ADD AX, CН ; додати регістр до регістру, результат записати в АХ. ADD EBX, DBLWORD ; додати подвійне слово з пам’яті до регістру. ADD BL, 10 ; додати 10 до молодшої частини регістра ВХ.
Варіант №18
Завдання
1. Підготуйте теоретичну частину щодо використання команд, призначених для цілочисельних арифметичних виразів.
2. Підготуйте і налагодьте програму для обчислення простих формул за зразком. Продемонструйте роботу програми під керуванням налагоджувача, прокоментуйте вміст обчислюваних змінних.
/
Результати виконання роботи
Файл .asm:
/
/
DOS:
/
Налагоджувач:
/
Дійсно при обчисленні даної формули можна отримати такий результат:
Формула: z=(2*c+d/4+23)/(a*a-1)
Розв’язок: z=(2*1+8/4+23)/(2*2-1)
Результати лістингу
/
/
/
/
Висновок: За результатом виконання цієї лабораторної роботи було засвоєно принципи роботи з арифметичними командами.