close

Вход

Забыли?

вход по аккаунту

?

ЛР8 Структури та макроси

код для вставкиСкачать
 Міністерство освіти і науки України
Національний технічний університет "Харківський політехнічний інститут"
Кафедра "Обчислювальна техніка та програмування"
Звіт з лабораторної роботи №8
з теми "Структури та макроси"
з дисципліни "Системне програмування"
Виконав:
студент групи КІТ-31
Чухлатый Ю.А.
Перевірив:
Главчев М.I.
Харків 2012 Лабораторна робота №8. "Структури та макроси"
Мета заняття: - поглибити і закріпити знання з архітектури МП платформи х86 і навички його програмування;
- придбати практичні навички складання, налагодження і виконання програм з використанням структур та АРІ-функцій під Win32, написаних мовою асемблеру МП платформи х86.
"Структури"
Постановка задачі
Згідно з останньою цифрою номера студента в групі вибрати свій варіант завдання та написати на асемблері програму обчислення одного з виразів з виведенням свого завдання, отриманих даних та довідку про автора програми функцією MessageBoxIndirect з відображенням своєї фотографії в якості іконки.
Завдання 1 7. Задано матрицю 3  6. Визначити рядок з максимальною сумою елементів. Результат виконання програми вивести у вікно консолі. Макроси. Постановка задачі
Згідно з останньою цифрою номера студента в групі вибрати свій варіант та написати на асемблері програму обчислення одного з виразів з використанням макросів та виведенням їх на екран. При цьому обов'язково використати як консоль, так й спрощені віконця з повідомленнями: в одному віконці вивести своє прізвище, номер своєї навчальної групи та своїх фотографії в якості іконки; при натисканні на другу кнопку спрощеного віконця - вивести умову завдання. Використання інших кнопок спрощеного віконця виведення повідомлень - за бажанням.
Завдання 1
7. 2,3(a - b) + 2,3(a - b)/a
Лістинг 1 .386 ; директива визначення типу мікропроцесора
.model flat, stdcall ; завдання лінійної моделі пам'яті та угоди ОС Windows
option casemap:none ; відмінність малих та великих літер
include \masm32\include\windows.inc ; файли структур, констант ...
include \masm32\include\\user32.inc ; файли інтерфейсу ...
include \masm32\include\kernel32.inc ; файли систем. функцій застосувань...
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
DATE1 STRUCT
elem1 dd ?
elem2 dd ?
elem3 dd ?
elem4 dd ?
elem5 dd ?
elem6 dd ?
DATE1 ENDS
.DATA
_str1 DATE1 <2,5,6,1,7,3>,<5,6,8,4,2,4>,<2,4,6,3,2,6>
_sn db 0
_res dd 0
titl1 db "Chuhlaty Yura KIT-31",0
buf db 10 dup(?),0
ifmt db "2,5,6,1,7,3",0dh,0ah,\
"5,6,8,4,2,4",0dh,0ah,\
"2,4,6,3,2,6",0dh,0ah,0ah,\
"Наибольшая сумма ряда",0dh,0ah,\
"%d ",0dh,0ah,0ah,\
"------------",0
.CODE
_start:
lea esi,_str1
mov ebx,0
mov eax,0
mov edx,3
mov ecx,6
m1:
add eax,[esi]
add esi,4
loop m1
cmp ebx,eax
jge m4
mov ebx,eax
m4:
mov ecx,6
mov eax,0
dec edx
cmp edx,0
jne m1
mov _res,ebx
invoke wsprintf, \ ; АРІ-функція перетворення числа
ADDR buf, \; адреса буферу, куди буде записана послідовність символів
ADDR ifmt, _res ; адреса рядка перетворення формату та регістр перетворення
invoke MessageBox, 0, addr buf, \ ; адреса рядка, яка містить текст повідомлення
addr titl1, MB_ICONINFORMATION+180000h ; заголовок та вигляд вікна
invoke ExitProcess, 0 ; повернення керування ОС Windows та вивільнення ресурсів
end _start
Приклад виконання программи
Рис. 1
Лістинг 2
.686 ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам'яті та угоди ОС Windows
option casemap:none ; відмінність малих та великих літер
include \masm32\include\windows.inc ; файли структур, констант ...
include \masm32\macros\macros.asm
uselib kernel32, fpu
mMul macro _a,_b,_c
fld dword ptr _b
fld dword ptr _a
fsub st(0),st(1)
fld dword ptr _c
fmul st(0),st(1)
endm
@ macro c0,c1,c2,c3
c0
c1
c2
c3
endm
.data
_a dd 12
_b dd 7
_c dd 2.3
_res1 dd 0
_res2 dd 0
.code
_start:
finit
@<mMul _a,_b,_c>,<fstp dword ptr _res1>,<mMul _a,_b,_c>,<fstp dword ptr _res2>
fld dword ptr _a
fld dword ptr _res2
fdiv st(0),st(1)
fld dword ptr _res1
fadd st(0),st(1)
ftst
invoke ExitProcess,0
end _start
Приклад виконання програми
Рис. 2
Висновки: Поглибили і закріпили знання з архітектури МП платформи х86 і навички його програмування Придбали практичні навички складання, налагодження і виконання програм з використанням структур та АРІ-функцій під Win32, написаних мовою асемблеру МП платформи х86.
Документ
Категория
Рефераты
Просмотров
15
Размер файла
226 Кб
Теги
структура, лр8, макрос
1/--страниц
Пожаловаться на содержимое документа