close

Вход

Забыли?

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

?

ЛР11 SSE-розширення

код для вставкиСкачать
 Міністерство освіти і науки України
Національний технічний університет "Харківський політехнічний інститут"
Кафедра "Обчислювальна техніка та програмування"
Звіт з лабораторної роботи №11
з теми "Дослідження програм з використанням команд SSE-розширень"
з дисципліни "Системне програмування"
Виконав:
студент групи КІТ-31
Чухлатий Ю.А.
Перевірив:
Главчев М.I.
Харків 2012
Лабораторна робота №11: "Дослідження програм з використанням команд SSE-розширень"
Мета заняття: - поглибити і закріпити знання з архітектури МП платформи х86 і навички його програмування;
- набути практичних навичок складання, налагодження і виконання програм з використанням команд SSE, написаних мовою асемблеру для програмування МП платформи х86.
Постановка задачі
Згідно з останньою цифрою номера студента в групі вибрати свій варіант та написати на асемблері за допомогою SSE-команд програму обчислення одного з виразів з використанням дійсних чисел та виведенням варіанту завдання та його вмісту, результату і прізвища автора програми на екран за допомогою функцієї MessageBoxIndirect.
Завдання 7. Виконати операцію паралельного логічного множення за допомогою SSE-команд над масивами чисел. Якщо результат порівняння більше 555, то виконати операцію
(b + 4d)/ba - 2, де a = 0,2; b = 7,5; c = 2,3; d = 3,4;
інакше - виконати операцію b + 4d.
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програми з виведенням даних на екран монітора з використанням АРІ-функцій під Win32 та детальним коментарем і описом роботи.
4. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою.
5. Висновки за результатами роботи.
Лістинг: .386 ; директива визначення типу мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам'яті та угоди ОС Windows
.XMM; використання регістрів SSE
option casemap:none; відмінність малих та великих літер
include \masm32\include\windows.inc ; файли структур, констант ...
include \masm32\macros\macros.asm
uselib kernel32, user32, fpu
BSIZE equ 50
.DATA
_mas1 dd 11.4, 14.02, 9.8, 4.0, 12.14, 1.82, 67.54, 9.95 ; масив №1
_len equ (SIZEOF _mas1)/type _mas1
_mas2 dd 11.4, 14.02, 3.14, 2.718, 5.0, 45.45, 23.35, 9.95 ; масив №2
_rez dd _len dup(0); результат порівняння
_flg db 0
_a dd 0.2
_b dd 7.5
_c dd 2.3
_d dd 3.4
_e dd 4.0
_f dd 2.0
.CODE
_start:
finit lea esi,_mas1
lea edi,_mas2
lea ebx,_rez
mov ecx,2
mov eax,555
m1:
movups XMM0, [esi]
movups XMM1, [edi]
mulps XMM0,XMM1
movups [ebx],XMM0
add esi, 16
add edi, 16
add ebx, 16
loop m1
lea ebx,_rez
mov ecx,_len
fld dword ptr _d
fld dword ptr _e
fmul st(0),st(1)
fld dword ptr _b
fadd st(0),st(1)
m2:
cmp [ebx],eax
jg m3
loop m2
jmp _exit
m3:
fld dword ptr _b
fdiv st(1),st(0)
fld st(1)
fld dword ptr _a
fmul st(0),st(1)
fld dword ptr _f
fsub st(1),st(0) fld st(1) _exit: ftst
invoke ExitProcess,0
end _start Результат виконання програми :
Рис. 1
Висновки: Поглибили і закріпили знання з архітектури МП платформи х86 і навички його програмування.Набули практичних навичок складання, налагодження і виконання програм з використанням команд SSE, написаних мовою асемблеру для програмування МП платформи х86.
Документ
Категория
Рефераты
Просмотров
10
Размер файла
102 Кб
Теги
sse, лр11, розширення
1/--страниц
Пожаловаться на содержимое документа