Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Постановка задачі. 1. Постановка задачі для конкретного варіанта.

Читайте также:
  1. I этап. Постановка задачи
  2. III. Постановка темы урока.
  3. IV. Задачі
  4. IV. Задачі
  5. Алгоритм вирішення задачі
  6. Аналіз задачі.
  7. Визначення початкового рішення транспортної задачі.
  8. Вирішити задачі
  9. Вирішити задачі
  10. Вирішити задачі

1. Постановка задачі для конкретного варіанта.

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.

3. Лістинг програми з виведенням даних на екран монітора з використанням АРІ-функцій під Win32 та детальним коментарем і описом роботи.

4. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою.

5. Короткий опис виконання програми.

6. Висновки за результатами роботи.

Приклад 18.2. Виконати паралельне порівняння за допомогою SSE2-команд 2-х масивів по 9 чисел. Якщо один масив менший від другого, то виконати операцію

(a – e) bd/b, де a = 0,1; b = 1,05; c = 2,1; d = 3,2;

інакше – виконати операцію d/b.

 

Лістинг 18.3:

title Rysovaniy A.N. & Хмеленко Д., НТУ “ХПІ”, КІТ-17а

.386; директива визначення типу мікропроцесора

.model flat,stdcall; завдання лінійної моделі пам’яті та угоди ОС Windows

.XMM; використання регістрів SSE

option casemap:none; відмінність малих та великих літер

include \masm32\include\kernel32.inc

include \masm32\include\windows.inc

include \masm32\include\user32.inc

include \masm32\include\fpu.inc

includelib \masm32\lib\fpu.lib

includelib \masm32\lib\user32.lib

includelib \masm32\lib\kernel32.lib

BSIZE equ 50

 

.data

mas1 dd 11.4, 14.02, 9.8, 4.0, 12.14, 1.82, 67.54, 9.95, 7.16; масив №1

len EQU $- mas1

mas2 dd 11.4, 14.02, 3.14, 2.718, 5.0, 45.45, 23.35, 9.95, 79.2; масив №2

rez dd len dup(0); результат порівняння

rez2 dq?; для результату виконання операцій

a1 dd 0.10

b1 dd 1.05

c1 dd 2.10

d1 dd 3.20

buf BYTE BSIZE dup(?)

st1 db "The Rezult mas1!=mas2",0; заголовки вікна повідомлень

st2 db "The Rezult mas1==mas2",0

st3 dd 0

flag db 0

 

.code

_st:

xor edx,edx

mov eax,len; завантаження 40 байтів масиву

shr eax,2; len/4 = 10 - визначення кількості чисел

mov ebx,4

div ebx; визначення кількості циклів

mov ecx,eax

lea esi,mas1; завантаження масиву №1 в esi

lea edi,mas2; завантаження масиву №2 в edi

xor ebx,ebx

 

.WHILE(ecx!=0)

movupd XMM0,[esi]; завантаження масиву №1 в регістр XMM0

movupd XMM1,[edi]; завантаження масиву №1 в регістр XMM0

cmppd XMM0, XMM1, 0; виконання паралельного порівняння масивів

movupd rez[ebx],XMM0; збереження результату порівняння

add esi,16; перехід на наступну адресу

add edi,16

add ebx,16

dec ecx

 

.ENDW

mov ecx,edx; залишок чисел, що не ввійшли до паралельного порівняння

 

.WHILE(ecx!=0)

movupd XMM0,[esi]; завантаження масиву №1 в регістр XMM0

movupd XMM1,[edi]; завантаження масиву №1 в регістр XMM0

cmpsd XMM0, XMM1,8; виконання скалярного порівняння масивів

movupd rez[ebx],XMM0; збереження результату порівняння

add esi,4; перехід на наступну адресу

add edi,4

add ebx,4

dec ecx

.ENDW

mov ecx,9

xor ebx,ebx

.WHILE(ecx!=0)

.IF (rez[ebx]==0); якщо елементи масивів хоча б один раз не дорівнюють

mov al,1; одне одному, то встановлюємо прапорець в 1

mov flag,al

.ENDIF

dec ecx

inc ebx

.ENDW

.IF (flag==1); якщо масиви не рівні, виконуємо вираз (а-с)b-d/b

finit

fld a1

fsub c1

fmul b1

fld d1

fdiv b1

fsub

fst rez2

lea ebx,st1

 

.ELSE; якщо ж масиви рівні, то виконуємо d/b

finit

fld d1

fdiv b1

fst rez2

lea ebx,st2

 

.ENDIF

mov st3, ebx; збереження заголовку вікна

 

invoke FpuFLtoA,0,10,addr buf,SRC1_FPU or SRC2_DIMM; перетворення чисел

invoke MessageBox, NULL, ADDR buf, st3, MB_OK; виведення на екран

invoke ExitProcess,0

end _st

 

Результат виконання програми з лістингу 18.2 наведено на рис. 18.11.

 

 
 

 

 


Література: Рисований О.М. Системне програмування [Текст]: підручник для студентів напрямку “Комп’ютерна інженерія” вищих навчальних закладів. – Х.: “Слово”, 2010. – 924 с.

 

Постановка задачі

Написати програму створення вікна Windows з файлом ресурсів. Перший пункт головного меню керує операціями згідно з варіантом завдання. Другий пункт головного меню відображає Help програми. Третій – інформацію про автора. Вікно повинне містити заголовок, у якому відображається прізвище студента, номер його навчальної групи та його електронна адреса. Зміна розмірів вікна повинна супроводжуватись повідомленням. Параметри ж самого вікна повинні відповідати варіанту завдання. Використати bmp-файл.




Дата добавления: 2014-12-18; просмотров: 90 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав