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

Лабораторна робота № 1

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

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

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування
Група:
КІ-31

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ  Лабораторна робота № 1 з дисципліни: " Системне програмування " Мета: Ознайомитись з програмною моделлю 32 розрядних процесорів Intel та оволодіти навиками створення програм, використовуючи 32 розрядний асемблер. Програмна модель комп'ютера, частиною якої є програмна модель мікропроцесора, яка містить 32 регістри в тій чи іншій мірі доступних для використання програмістом. Робота з масивами Регістри загального призначення використовуються для адресації масивів. При цьому застосовується адресація по базі з масштабуванням: початкова адреса + база* масштабуючий коефіцієнт бази. Допустимі значення масштабуючого коефіцієнту бази (кількість байт, які займає 1 елемент масиву) рівні 1, 2, 4, 8. Таким чином, щоб записати 3-й елемент масиву оголошеного мовою С як short arr[15] в edx треба написати код: mov eax, arr mov ebx, 2 mov edx,[eax+ebx*2] ЗАВДАННЯ 6 Знайти скільки додатних елементів масиву A={a[i]} задовольняють умову: с <= a[i] <= d   Код програми: .586 ; використати плоску модель пам'яті і узгодження імен stdcall .model flat, stdcall option casemap: none ; оголошення службових процедур, макросів, змінних, констант include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\include\debug.inc ; підключення службових бібліотек includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib includelib \masm32\lib\debug.lib ; оголошення масиву даних .data Arr dd 15,15,20,-5,5,15,-96,9,3,60;опис масиву даних Q dw -10;опис нижньої межі Q D dw 20;опис верхньої межі D S dd 0h;кількість додатніх елементів .code start: ;виводимо елементи масиву на екран у зворотньому порядку mov ecx,10 prnt: mov eax,[Arr+ecx*4-4] PrintDec eax,"Arr value=" ; виклик макросу відлагодження dec ecx cmp ecx,0 jnz prnt ;робимо варіант по списку mov ecx,10 q1: mov eax,[Arr+ecx*4-4] cmp eax,0 ; порівнюємо число з нулем jge next jl mitkaExit next: cmp ax,Q ; порівнюємо число з нижньою межею jl mitkaExit jge mitkaD mitkaD: cmp ax, D jg mitkaExit ; порівнюємо число з верхньою межею jle Sumator Sumator: inc S ; додаємо до S одиницю, якщо всі умови справдились jmp mitkaExit mitkaExit: dec ecx cmp ecx,0 ;перевіряємо чи кінець масиву jnz q1 mov eax,S PrintDec eax,"K-st elementiv." ; виклик макросу відлагодження invoke ExitProcess, NULL ; виклик процедури завершення процесу end start  Висновок: На цій лабораторній роботі я створив програму відповідно мого варіанту і навчився використовувати 32х розрядний асемблер.
Антиботан аватар за замовчуванням

18.11.2012 20:10

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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