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

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

Зміст звіту

Читайте также:
  1. БЛОК ЗМІСТОВНИХ МОДУЛІВ № 1 1 страница
  2. БЛОК ЗМІСТОВНИХ МОДУЛІВ № 1 2 страница
  3. БЛОК ЗМІСТОВНИХ МОДУЛІВ № 1 3 страница
  4. БЛОК ЗМІСТОВНИХ МОДУЛІВ № 1 4 страница
  5. Вимоги до змісту
  6. Вимоги до змісту та розташування реквізитів
  7. Вимоги до структури, змісту, обсягу й інтенсивності фізичних вправ в основній частині уроку.
  8. Економічний зміст бюджетних відносин.
  9. Економічний зміст обліку зобов’язань
  10. Економічний зміст та призначення єдиного казначейського рахунку

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

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

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

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

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

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

Приклад 16.3. Виконати операцію паралельного додавання за допомогою ММХ-команд над масивами цілих чисел. Якщо друге слово більше 55, то виконати операцію

a – e/b – de, де a = 0,2; b = 8,05; c = 2,2; d = 3,3;

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

Лістинг 16.15:

title Rysovaniy A. N. & Gerasimovich N., НТУ ”ХПІ”, KIT-27v

; a - c/b - dc; a = 0,2; b = 8,05; c = 2,2; d = 3,3;

; a - c/b if (second word < 55)

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

.model flat,stdcall; завдання лінійної моделі пам’яті

; та угоди ОС Windows

.MMX; директива визначення команд MMX

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

include \masm32\include\windows.inc; файли структур, констант …

include \masm32\macros\macros.asm

uselib kernel32, user32, fpu

fpuDiv macro _a,_c,_b; макрос з ім’ям fpuDiv

fld _c

fdiv _b

fld _a

fsubr

endm;; закінчення макросу

 

.data; директива визначення даних

_a REAL4 0.2

_b REAL4 8.05

_c REAL4 2.2

_d REAL4 3.3

arr1 WORD 1,2,3,4; масив чисел arr1 розміром у слово

len1 equ ($-arr1)/type arr1; кількість чисел масиву

arr2 WORD 5,6,7,5; масив чисел arr2 розміром у слово

len2 equ ($-arr2)/type arr2; кількість чисел масиву

arr1_2 BYTE (len1+len2) dup(0); розмір буфера для чисел масивів

st1 db "FPU-MMX Result",0; назва віконця

info db "x1 = "; підпис числа для віконця результату

st2 db 10 dup(?),0; буфер чисел для виведення повідомлення

.code; директива початку коду програми

_st:; мітка початку програми з ім’ям _st

movq MM1,QWORD PTR arr1; завантаження масиву чисел arr1

movq MM2,QWORD PTR arr2; завантаження масиву чисел arr2

paddb MM1,MM2; паралельне циклічне додавання чисел масивів

movq QWORD PTR arr1_2,MM1; збереження результату додавання

 

.if((WORD ptr arr1_2+2)>55); якщо друге слово більше 55

emms

fpuDiv [_a],[_c],[_b]

fld _d

fmul _c

fsub

invoke FpuFLtoA, 0, 10, ADDR st2, SRC1_FPU or SRC2_DIMM

invoke MessageBox, NULL, addr st2, addr st1, MB_ICONQUESTION

.else; інакше

emms; остання ММХ-команда

fpuDiv [_a],[_c],[_b]

invoke FpuFLtoA, 0, 10, ADDR st2, SRC1_FPU or SRC2_DIMM

invoke MessageBox, NULL, addr info, addr st1, MB_ICONINFORMATION

.endif; закінчення директиви.if

invoke ExitProcess, 0; повернення керування ОС Windows

; та вивільнення ресурсів

end _st; директива закінчення програми

 

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

 
 

 


Для надання інформаційності спрощеного віконця використано параметр MB_ICONINFORMATION. Підпис числа результату "x1 = " виконано за допомогою послідовності команд:

info db "x1 = "; підпис числа для віконця результату

st2 db 10 dup(?),0; буфер чисел для виведення повідомлення

 

Виклик підпису з результатом виконується функцією MessageBox параметром addr info. А у зв’язку з тим, що в імені info відсутній 0 на кінці, виконується зчитування й наступного буфера, де безпосередньо розташовується результат операції.

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




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




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