DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Особливості програмування з використанням 32-розрядного Асемблера

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

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

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

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

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

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 1 з дисципліни: “Системне програмування” на тему: “Особливості програмування з використанням 32-розрядного Асемблера” Мета лабораторної роботи Ознайомитись з програмною моделлю 32-розрядних мікропроцесорів Intel та оволодіти навиками створення програм, використовуючи 32-розрядний Асемблер. Теоретичні відомості Основою для розробки низькорівневого системного програмного забезпечення є програмна модель комп’ютера, частиною якої є програмна модель мікропроцесора. До складу програмної моделі мікропроцесорів Intel сімейства x86 входять 32 регістри в тій чи іншій мірі доступні для використання програмістом. Дані регістри можна розділити на дві великі групи: 16 регістрів користувача; 16 системних регістрів. У програмах на мові асемблера регістри використовуються дуже інтенсивно. Більшість регістрів мають певне функціональне призначення. Індивідуальне завдання 1. Створити, використовуючи мову асемблера мікропроцесорів сімейства x86 Intel, *.exe програму, яка реалізовує обчислення, заданого варіантом виразу. A = {a[i]} – наперед заданий масив з N чисел цілих чисел. c, d – цілі константи. K, L – цілі додатні числа. 2. Переконатися у правильності роботи програми використовуючи VKDebug. 3. Скласти звіт про виконану роботу з приведенням тексту програми. 4. Дати відповідь на контрольні запитання. 29. Знайти суму елементів масиву A за умови a[i] >= c/d   Код програми .686 ; 32-бітний режим .model flat, stdcall ; використати плоску модель пам'яті і узгодження імен stdcall option casemap: none ; нерозрізнення великих і малих символів ; оголошення службових процедур, макросів, змінних, констант include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\include\debug.inc include \masm32\include\user32.inc ; підключення службових бібліотек includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib includelib \masm32\lib\debug.lib includelib \masm32\lib\user32.lib .data arr dd -1, -4, 2, 1 n dd 4 ; number of elements in the array ConstC dd 6 ConstD dd -2 sum dd 0 ; result .code program: mov eax, ConstC mov edx, 0 idiv ConstD ; eax = c/d PrintDec eax, "c/d" ; print c/d in VKdebug mov ecx, 0 test_arr: mov edx, arr[ecx * 4] PrintDec edx, "arr[i]" ; print arr[i] in VKdebug cmp arr[ecx * 4], eax jl increment ; if (arr[i] < c/d) goto increment (skip addition) add sum, edx PrintDec sum ; print sum in VKdebug increment: inc ecx cmp ecx, n jl test_arr ; if (ecx < n) goto test_arr invoke ExitProcess, NULL ; виклик процедури завершення процесу end program Результат виконання програми –1 + 2 + 1 = 2 / Висновок Я ознайомився з програмною моделлю 32-розрядних мікропроцесорів Intel та оволодів навиками створення програм, використовуючи 32-розрядний Асемблер.
Антиботан аватар за замовчуванням

07.05.2017 14:51

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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