Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

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

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

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

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

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

Частина тексту файла

Міністерство освіти і науки Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт до лабораторної роботи № 4 з дисципліни: “ Засоби системного програмування” на тему: “ Програмування задач лінійної структури. Обчислення виразів.” Мета роботи • вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. Завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. Варіанти завдання: А, В, С, D, E, F - беззнакові операнди, довжиною в байтах, згідно з індексу, значення К подано у 16-му форматі. Індивідуальне завдання(Варіант 27): № Вираз K  27 X=A2*B1+C4/(K-E1*F1) A77627   Код програми (файл lab.asm) DOSSEG .MODEL SMALL .STACK 100h .DATA A dw 3333h B db 11h C dd 11112222h E db 22h F db 33h K_low EQU 7627h K_high EQU 7Ah temp1 dw 0 ;5B06 temp2 dw 0 ;35563 temp3 dw 0 ;1110 C71C temp4 dw 0 ;11141C7F X dd 0 ;11143F8F .CODE start: mov ax,@data mov ds,ax ; множення temp1=A*B mov al, byte ptr A mul B mov word ptr temp1,ax mov al, byte ptr [A+1] mul B add word ptr [temp1+1], ax adc byte ptr [temp1+3], 0 ;додавання можливого переносу в старший байт змінної ; для демонстрації в дебагері mov ax, word ptr [temp1+2] mov bx, word ptr temp1 ; множення temp2=E*F mov al, byte ptr E mul F mov word ptr temp2,ax mov al, byte ptr [E+1] mul F add word ptr [temp2+1], ax adc byte ptr [temp2+3], 0 ;додавання можливого переносу в старший байт змінної ; для демонстрації в дебагері mov ax, word ptr [temp2+2] mov bx, word ptr temp2 ; віднімання temp3=K-temp2 mov ax, word ptr K_low sub ax, temp2 mov word ptr temp3, ax mov ax, word ptr K_high sbb ax, 0 ;віднімання з можливим запозиченням mov word ptr [temp3+2], ax ; для демонстрації в дебагері mov ax, word ptr [temp3+2] mov bx, word ptr temp3 ; ділення temp4=C/temp3 mov ax, word ptr C mov dx, word ptr [C+2] div temp3 mov temp4, ax ; додавання X=temp1+temp4 mov ax, word ptr temp1 add ax, temp4 mov word ptr X, ax mov ax, word ptr [temp1+2] adc ax,0 mov word ptr [X+2], ax mov ax, word ptr [temp1+4] adc ax,0 mov word ptr [X+4], ax ; для демонстрації в дебагері mov ax, word ptr [X+4] mov bx, word ptr [X+2] mov cx, word ptr X mov ah,4Ch int 21h end start end Обчислення прикладу: temp1 = B / C = 333316 * 1116 = 3666316 temp2 = E*F = 2216 * 3316 = 6C616 temp3 = K-temp2= 7A762716 - 6C616 = 7A6F6116 temp4 = C / temp3= 1111222216/7A6F6116= 2316 X = temp1+temp4= 3666316 + 248E3E1416 = 4C6116 Проміжні результати: / Рис.1. Змінна temp1, старші байти в регістрі ax, а молодші байти в bx / Рис.2. Змінна temp2, байти в регістрі ax. / Рис.3. Змінна temp3, байти в регістрі ax / Рис.4. Змінна temp4, старші байти в регістрі bx, молодші ax / Рис.5. Змінна Х, результат виразу, байти в регістрі Висновок: в даній лабораторній роботі я отримав навики використання різних арифметичних команд над даними різного розміру і використав отримані знання для обчислення індивідуального завдання на мові Assembler.
Антиботан аватар за замовчуванням

09.10.2016 12:10

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини