рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Зміст звіту

Зміст звіту - раздел Образование, Лабораторна робота №4 1. Постановка Задачі Для Конкретного Варіанта Завдання. 2. Блок-Схем...

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

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

3. Лістинг програми та коментарі до всіх команд.

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

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

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

Приклад 8.1. Для функції Y = 40Х + 15 одержати перше значення, що перевищує 512, починаючи з Х = 2. Значення аргументу та функції вивести на екран.

Алгоритм вирішення прикладу 8.1 наведено на рис. 8.14.

 

 
 

 


Лістинг 8.12. Програма виконання прикладу 8.1:

title CopyRight by Rysovaniy A. N.

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

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

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

include masm32includewindows.inc

include masm32includeuser32.inc

include masm32includekernel32.inc

includelib masm32libuser32.lib

includelib masm32libkernel32.lib

; Для функції У=40Х+15 одержати перше значення, при якому

; Y > 512, ; починаючи з Х = 2. Значення аргументу та функції

; записати в комірки пам’яті. Вивести результат на екран

BSIZE equ 15 ; завдання реальної кількості байтів

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

x dd 40 ; резервування 32-розрядної комірки пам’яті для х = 40

y dd ? ; резервування 32-розрядної комірки пам’яті для змінної Y

buf db BSIZE dup(?) ; резервування пам’яті для буфера

frmt db "%d",0 ; завдання перетворення одного символу

stdout DWORD ? ; резервування в пам’яті 32-розрядної комірки

cWritten DWORD ? ; резервування 32-розрядної комірки пам’яті

; з ім’ям cWritten для адреси символів виведення

st1 db " y = 40X + 15",0

st2 db "Автор: Рысованый А.Н.",0

st3 db " ЛР Организация ввода-вывода",0

st4 db "Программа выполнена успешно",0

st6 db "До следующей лабораторной работы !!!",0

.code ; початок сегмента даних

start: ; мітка початку програми

mov ebx,2 ; початкове значення аргументу Х

m1: mov eax,ebx ; підготування до множення

mul x ; виконання частини функції Y (40Х)

add eax,15 ; виконання всієї функції Y = 40Х + 15

cmp eax,512 ; порівняння з умовою

jnc exit ; перейти, якщо Y > 128

inc ebx ; збільшити лічильник аргументу Х

jmp m1 ; перейти при Y < 128

exit:

mov esi,ebx ; збереження Х

mov edi,eax ; збереження Y

invoke GetStdHandle, STD_OUTPUT_HANDLE ; отримання дескриптора

mov stdout, eax ; збереження одержаного дескриптора у пам’яті

invoke wsprintf, ; АРІ-функція перетворення числа

ADDR buf, ; адреса буфера, куди буде записана послідовність символів

ADDR frmt, ; адреса рядка перетворення формату

esi ; регістр, вміст якого перетворюється

invoke WriteConsoleA, ; АРІ-функція виведення на екран

stdout, ; дескриптор стандартного пристрою виведення

ADDR buf, ; адреса початку повідомлення

BSIZE, ; розмір повідомлення

ADDR cWritten, 0 ; адреса, де зберігається число символів

invoke wsprintf, ADDR buf, ADDR frmt,edi ; функція перетворення edi

invoke WriteConsoleA, ; АРІ-функція виведення на екран

stdout, ; дескриптор стандартного пристрою виведення

ADDR buf, ; адреса початку повідомлення

BSIZE, ; розмір повідомлення

ADDR cWritten, 0 ; адреса, де зберігається число символів

invoke Sleep, 2000d ; API-функція затримки зображення

invoke MessageBox, ; АРІ-функція виведення вікна консолі

NULL, ; hwnd – ідентифікатор вікна

addr st2, ; адреса рядка, який містить текст повідомлення

addr st1, ; адреса рядка, який містить заголовок повідомлення

MB_OKCANCEL ; вигляд діалогового вікна

xor eax,1

jz a1

invoke MessageBox, NULL, addr st4, addr st3, MB_ICONINFORMATION

jmp a2

a1: invoke MessageBox, NULL, addr st6, addr st3, MB_OK

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

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

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

 

Наприкінці програми показано використання АРІ-функції MessageBox. Останній її параметр повертає до регістра еах або 1 (якщо OK), або 2 (якщо CANCEL). За допомогою команди xor (додавання за mod2), якщо значення регістра еах дорівнювало 1, прапорець ZF встановиться в 1. У такому випадку виводиться одне повідомлення, у іншому випадку – друге повідомлення.

На рис. 8.15 наведено результат виконання лістингу 8.12.

 
 

 


Ліворуч наведено змінну Х, а праворуч – Y. Є декілька варіантів підпису. Найбільш простим є варіант, при якому можна використати директиви

frmt1 db "х = %d",0

frmt2 db "y = %d",0

При іншому варіанті програма суттєво модернізується. Спочатку, як наведено у лістингу 8.13, замість функції wsprintf напишемо підпрограму, яка переводить число у десяткову систему числення (діленням на 10), а потім підсумуємо константу 48D = 30h = ‘0’ (лістинг 8.13).

 

Висновки: …

 

 

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

 

– Конец работы –

Эта тема принадлежит разделу:

Лабораторна робота №4

Студенти виконують завдання Завдання Варіанти завдання Задано масив А з N елементів Навести...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Зміст звіту

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Лабораторна робота №4
“Програмування масивів та запис даних в файл під Win32 API” Мета заняття: – поглибити і закріпити знання з архітектури МП платформи х86 і навички

Завдання 1.
Згідно з останньою цифрою номера студента в групі вибрати варіант завдання та написати на асемблері програму обчислення одного з прикладів з введенням та виведенням даних. П

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги