DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 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:11

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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