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

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

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

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

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

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

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ Звіт лабораторної роботи №3 «Програмування задач лінійної структури. Обчислення виразів» з дисципліни: «Засоби системного програмування» Львів-2013 Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. ЗАВДАННЯ Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТ ЗАВДАННЯ: А, В, С, D, E, F - беззнакові операнди, довжиною в байтах, згідно з індексу, значення К подано у 16-му форматі. 19 X=(A4-B3-K)*D1+E4/F2 311  Алгоритм виконання: 1.1 Послідовність операцій 1. A4-B3 2. (1)-K 3. (2)*D1 4. E4/F2 5. (3) + (4) 1.2 Послідовність виконання 1. Виконати віднімання 3 байти від 4-х, результат – 4 байти 2. Віднімання 2 байти від 4-х, результат – 4 байти 3. Множення 4 байти на 1 байт, результат – 4 байти 4. Ділення 4 байти на 2 байти, результат – 2 байти 5. Додавання 4 байт + 2 байта, результат – 4 байта 6. Запис результату – 4 байти. Текст програми: .MODEL SMALL .STACK 100h .DATA K EQU 311d A dd 99558888h B dd 00ff9999h D db 11h E dd 11223344h F dw 1234h Temp1 dd 0h Temp2 dd 0h Temp3_l dd 0h Temp3_h dd 0h Temp4 dd 0h X_l dd 0h X_h dd 0h .CODE mov ax,@data mov ds,ax mov ax, word ptr [A] mov bx, word ptr[B] sub ax,bx mov word ptr [Temp1],ax mov ax, word ptr [A+2] mov bx, word ptr [B+2] sbb ax,bx mov word ptr [Temp1+2],ax mov ax, word ptr [Temp1] mov bx,K sub ax,bx mov word ptr [Temp2],ax mov ax, word ptr [Temp1+2] mov word ptr [Temp2+2],ax mov bl,D mov bh,00 mov ax, word ptr [Temp2] mul bx mov word ptr [Temp3_l],ax mov word ptr [Temp3_l+2],dx mov ax, word ptr [Temp2+2] mul bx add ax,word ptr [Temp3_l+2] mov word ptr [Temp3_l+2],ax adc dx,0 mov word ptr [Temp3_h],dx mov ax, word ptr [E] mov dx, word ptr [E+2] div F mov Temp4,ax mov ax,word ptr [Temp3_l] add ax,Temp4 mov X_l,ax mov ax,word ptr[Temp3_l+2] adc ax,word ptr[Temp4+2] mov X_l+2,ax mov ax,word ptr [Temp3_h] mov X_h,ax mov ah,4Ch int 21h end Результати виконання програми: Висновки: виконавши дану лабораторну роботу, я вивчив способи задання констант та змінних в Асемблері та набув навиків використання арифметичних команд над даними різного розміру.
Антиботан аватар за замовчуванням

11.04.2014 14:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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