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

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

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

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

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Засоби системного програмування
Група:
КІ 2
Варіант:
2 11

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

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторної роботи №4 З дисципліни: «Засоби системного програмування» На тему: «Програмування задач лінійної структури. Обчислення виразів.» Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. ЗАВДАННЯ: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТ ЗАВДАННЯ: № Вираз K  2 X=A4/B2+C3-D1*E1-K 202  Лістинг програми: DOSSEG .MODEL SMALL .STACK 100h .DATA K EQU 202h A dd 10000 ; оголошуємо потрібні нам змінні B dw 10 C dw 01,00 D db 10 E db 12 Temp1 dw 00h,00h ; змінні для проміжних результатів Temp2 dw 00h,00h X dw 00h,00h ; змінна для кінцевого результату ;X=A4/B2+C3-D1*E1-K .CODE go: mov ax,@data mov ds,ax ;Temp1 <- A4/B2 ; в цьому блоці виконуємо операцію ділення mov ax,word ptr A+2 ; переміщуємо старшу частину змінної А в регістр ах mov bx,1 ; переміщуємо 1 в регістр bx mul bx ; робимо множення на 1 div B ; виконуємо ділення mov Temp1+2,ax ; записуємо частку старшої частини в Temp1 зі зміщенням на 2 байти mov ax,word ptr A ; переміщуємо молодшу частину змінної А у регістр ах div B ; виконуємо ділення mov Temp1,ax ; записуємо частку в Temp1 ;Temp2 <- D1*E1 ; в цьому блоці виконуємо операцію множення mov ax,0 ; онулюємо регістр ах mov ax,word ptr D ; переносимо значення змінної D в регістр ax mul E ; виконуємо множення mov Temp2,ax ; молодший результат множення записуємо в Temp2 mov Temp2+2,dx ; старший результат множення записуємо в Temp2 зі зміщення у 2 байти ;Temp1 + C3 - Temp2 – K ; в цьому блоці виконуємо операцію додавання та віднімання з використанням ; проміжних результатів та змінних mov ax,0 ; онулюємо регістр ах mov ax, word ptr C ; переносимо значення зміноої С в регістр ах add ax,Temp1 ; виконуємо додавання adc dx,Temp1+2 ; виконуємо додавання з врахуванням переносу sub ax,Temp2 ; виконуємо віднімання sbb dx,0 ; виконуємо віднімання з запозиченням add ax,K ; виконуємо додавання mov X,ax ; переміщаємо молодшу частину результату з регістру ах у змінну Х mov X+2,dx ; переміщаємо старшу частину результату з регістру dх у змінну Х зі зміщенням на 2 байти int 21h ; переривання end go Висновок: я навчився виконувати операції над цілими без знаковими даними. Використовувати стандартні функції для виконання цих операцій.
Антиботан аватар за замовчуванням

30.04.2014 21:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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