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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 4 з дисципліни: “ Засоби системного програмування ” на тему: ”Програмування задач лінійної структури. Обчислення виразів.” Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. Порядок виконання роботи 1. Завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. ВАРІАНТИ ЗАВДАННЯ: А, В, С, D, E, F - беззнакові операнди, довжиною в байтах, згідно з індексу, значення К подано у 16-му форматі. X=A2*B1+C4/(K-E1*F1) A77627   2. Написав і скомпілював код програми .MODEL SMALL .STACK 100h .DATA A dw 8253h B dw 0083h C dd 45114563h E db 12h F db 13h K_high EQU 7Ah K_low EQU 7627h X dd ? Temp1 dw 0000h Temp2 dw 0000h .CODE Start: mov ax,@data mov ds,ax xor cx,cx xor ax,ax ;очищуємо регістр xor dx,dx ;очищуємо регістр mov al, [E] ;заносимо в al E mul [F] ;множимо E*F ax=al*F результат в AX.!!! mov cx,ax ;переносимо результат в cx mov ax, K_low ;ax = 7627h mov dx, K_high ; dx = 007Ah sub ax,cx ; K-E1*F1 sbb dx,0 ; якщо виникло переповнення до відняти 1 mov word [Temp1],ax ; зберігаємо результат у змінній Temp1 mov word [Temp2],dx mov ax,word ptr C ;ax = 4563h mov dx,word ptr C+2 ;dx = 4511h div Temp1 ;C4/(K-E1*F1) ax= dx:ax / Temp1 div Temp2 ; al=ax/ Temp2 xor cx,cx mov cl,al ;c/(K-E*F) cx=al mov bx, word [B] ;заносимо в bx A mov ax, word [A] ;заносимо в ax B mul bx ;множимо A*B dx:ax = ax*bx результат в ax і dx add ax,cx adc dx,0 mov word ptr X, ax ;переносимо результат в X mov word ptr X+2,dx end Start / Висновок: на даній роботі я вивчив способи задання констант та змінних в Асемблері та набув навиків використання арифметичних команд над даними різного розміру.
Антиботан аватар за замовчуванням

14.10.2018 20:10-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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