Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
/
ЗВІТ
З лабораторних робіт
З дисципліни: «Cистемне програмування»
Львів 2014
Лабораторна робота №1
Тема: Особливості програмування з використанням 32х розрядного асемблера
Мета: освоїти використання команд порівняння, умовного та безумовного переходів. Набути вміння використовувати арифметичні команди над знаковими даними та команди логічних операцій.
Завдання:
Варіант:
21
Знайти суму перших К відємних елементів масиву 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
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,-3,8,-10,-15,6,5,4,3
k dd 5
CC dd -4
d dd -10
x dd -14; x = c + d
.code
start:
mov ecx,0
mov ebx,0 ;сума
prnt:
mov eax,[Arr+ecx*4]
cmp eax,0
jg wer
cmp eax,x
jl wer
add ebx,eax
wer:
inc ecx
cmp ecx,k
loop prnt
PrintDec ebx,"сума перших К відємних елементів що задовольняють умову a(i) більше рівне за с + d"
invoke ExitProcess, NULL ; виклик процедури завершення процесу
end startВисновок і результат роботи програми:
/
Висновок: на даній лабораторній роботі я навчився працювати з 32х розрядним асемблером, дізнався про деякі нові особливості, що наприклад тепер звичні мені регістри із процесору 8086 розширились. Нагадав собі як працюють умовні переходи, а також як проходитись по масиву і використовувати дані з нього у циклах.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!