Програмування задач лінійної структури. Обчислення виразів

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування

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

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 4 з дисципліни: “Засоби системного програмування” на тему: “Програмування задач лінійної структури. Обчислення виразів” Мета лабораторної роботи Вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. Теоретичні відомості Асемблер допускає два основні методи визначення даних: через вказування довжини даних та за їх значенням. В першому випадку використовуються директиви визначення даних, а у другому безпосереднє значення або директива EQU. Розглянемо основний формат визначення даних: [ім’я] Dn вираз - Ім’я елемента даних не є обов’язковим але якщо в програмі є посилання на деякий елемент, те це робиться за допомогою імені. - Для визначення елементів даних є наступні директиви: DB (байт) DW (слово – 2 байти) DD (подвійне слово – 4 байти), DQ (8 байт) DT (10 байт). Вираз може містити константу, наприклад: FLD1 DB 25, або знак питання для невизначеного значення, наприклад: FLDB DB ? Вираз може містити кілька констант, розділених комами й обмеженими тільки довжиною рядка: FLD3 DB 11, 12, 13, 14, 15, 16, ... Асемблер визначає ці константи у вигляді послідовності сусідніх байт. Звертання за FLD3 вказує на першу константу 11, за FLD3+1 - на другу 12. (FLD3 можна представити як FLD3+0). Наприклад команда MOV AL,FLD3+3 завантажує в регістр AL значення 14 (0Eh). Вираз допускає також повторення константи в наступному форматі: [ім’я] Dn кількість повторень DUP (вираз) ... Індивідуальне завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. 12 X=K+B4/C2-D2*F2-E1 7055E0AC   Код програми .MODEL SMALL .STACK 100h .DATA K_low EQU 0E0ACh K_high EQU 7055h B4 dd 1215842Ah C2 dw 1548h D2 dw 3523h E1 db 72h F2 dw 1284h Temp1 dw 0h ;B4/C2 Temp2 dd 0h ;D2*F2 Temp3 dq 0h ;K+Temp1 Temp4 dq 0h ;Temp3-Temp2 X dq 0h ;Temp4-E1 .CODE start: mov ax,@data mov ds,ax mov ax, word ptr [B4] mov dx, word ptr [B4+2] div C2 mov Temp1, ax mov ax, D2 mul F2 mov word ptr [Temp2], ax mov word ptr [Temp2+2], dx mov ax, K_low add ax, Temp1 mov word ptr [Temp3], ax mov ax, K_high adc ax, 0 mov word ptr [Temp3+2], ax mov ax, 0 adc ax, 0 mov word ptr [Temp3+4], ax mov ax, word ptr [Temp3] sub ax, word ptr [Temp2] mov word ptr [Temp4], ax mov ax, word ptr [Temp3+2] sbb ax, word ptr [Temp2+2] mov word ptr [Temp4+2], ax mov ax, word ptr [Temp3+4] sbb ax, word ptr [Temp2+4] mov word ptr [Temp4+4], ax mov ax, word ptr [Temp4] mov dl, E1 mov dh, 0 sub ax, dx mov word ptr [X], ax mov ax, word ptr [Temp4+2] mov word ptr [X+2], ax mov ax, word ptr [Temp4+4] mov word ptr [X+4], ax mov ax, word ptr [Temp4+6] mov word ptr [X+6], ax mov ah, 4Ch int 21h end start Результат виконання програми / Висновок Я вивчив способи задання констант та змінних в Асемблері та набув навиків використання арифметичних команд над даними різного розміру.
Антиботан аватар за замовчуванням

30.03.2016 11:03-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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