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

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

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

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

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

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

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

Міністерство освіти і науки Національний університет «Львівська політехніка» Кафедра ЕОМ Звіт до лабораторної роботи № 4 з дисципліни: “ Засоби системного програмування” на тему: “ Програмування задач лінійної структури. Обчислення виразів.” Мета роботи • вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. Завдання Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. Варіанти завдання: А, В, С, D, E, F - беззнакові операнди, довжиною в байтах, згідно з індексу, значення К подано у 16-му форматі. Індивідуальне завдання(Варіант 10): № Вираз K  10 X=A4-B4/C2+K+E2*F1 2310   Код програми (файл lab.asm) DOSSEG .MODEL SMALL .STACK 100h .DATA A dd 11112222h B dd 12345678h C dw 3333h E dw 3233h F db 11h K EQU 2310h temp1 dw 0 ;5B06 temp2 dd 0 ;35563 temp3 dd 0 ;1110 C71C temp4 dq 0 ;11141C7F X dq 0 ;11143F8F .CODE start: mov ax,@data mov ds,ax ; ділення temp1=B/C mov ax, word ptr B mov dx, word ptr [B+2] div C mov temp1, ax ; множення 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=A-temp1 mov ax, word ptr A sub ax, temp1 mov word ptr temp3, ax mov ax, word ptr [A+2] sbb ax, 0 ;віднімання з можливим запозиченням mov word ptr [temp3+2], ax ; для демонстрації в дебагері mov ax, word ptr [temp3+2] mov bx, word ptr temp3 ; додавання temp4=temp3+temp2 mov ax, word ptr temp3 add ax, word ptr temp2 mov word ptr temp4, ax mov ax, word ptr [temp3+2] adc ax, word ptr [temp2+2] mov word ptr [temp4+2], ax adc word ptr [temp4+4], 0 ; для демонстрації в дебагері mov ax, word ptr [temp4+4] mov bx, word ptr [temp4+2] mov cx, word ptr temp4 ; додавання X=temp4+K mov ax, word ptr temp4 add ax, K mov word ptr X, ax mov ax, word ptr [temp4+2] adc ax,0 mov word ptr [X+2], ax mov ax, word ptr [temp4+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 = 1234567816 / 333316 = 5B0616 temp2 = E*F = 323316 * 1116 = 3556316 temp3 = A-B/C= A-temp1= 1111222216 - 5B0616 = 1110C71C16 temp4 = A-B/C+ E2*F1 = temp3-temp2=1110C71C16+3556316= 11141C7F16 X = temp4 + K = 11141C7F 16 + 231016 = 11143F8F16 Проміжні результати: / Рис.1. Змінна temp1, в регістрі ax - частка, в dx – залишок від ділення / Рис.2. Змінна temp2, старші байти в регістрі ax, а молодші байти в bx / Рис.3. Змінна temp3, старші байти в регістрі ax, а молодші в bx / Рис.4. Змінна temp4, старші байти в регістрі bx, молодші ax / Рис.5. Змінна Х, результат виразу, старші байти в регістрі bx, наймолодші сx Висновок: в даній лабораторній роботі я отримав навики використання різних арифметичних команд над даними різного розміру і використав отримані знання для обчислення індивідуального завдання на мові Assembler.
Антиботан аватар за замовчуванням

09.10.2016 12:10

Коментарі

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

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

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

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

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

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

Admin

26.02.2019 12:38

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

Новини