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

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

Зміст звіту

Зміст звіту - раздел Образование, Поглибити і закріпити знання з архітектури МП платформи х86 і навички його програмування 1. Постановка Задачі Для Конкретного Варіанта. 2. Блок-Схема Алгорит...

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

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

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

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

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

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

 

Приклад 13.3. Задано матрицю 2 ´ 4. Визначити суму всіх негативних елементів матриці. Результат виконання програми вивести у вікно консолі.

 

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

title CopyRight by Rysovaniy A. N., rysov@rambler.ru

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

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

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

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

include masm32include\user32.inc ; файли інтерфейсу …

include masm32includekernel32.inc ; файли систем. функцій застосувань…

includelib masm32libuser32.lib

includelib masm32libkernel32.lib

DATE1 STRUCT ; тип даних СТРУКТУРА з іменем DATE1

elem1 dd ? ; ім’я першого поля структури

elem2 dd ? ; ім’я другого поля структури

elem3 dd ? ; ім’я третього поля структури

elem4 dd ? ; ім’я четвертого поля структури

DATE1 ENDS

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

str1 DATE1 <1,-1,-2,3> ; структура з іменем str1

str2 DATE1 <0,-2,-1,-3> ; структура з іменем str2

titl1 db " Работа с элементами структуры",0

buf db 10 dup(?),0

ifmt db "Задана матрица:",0dh,0ah,

"1 -1 -2 3",0dh,0ah,

"0 -2 -1 -3",0dh,0ah,0ah,

"Результат сложения отрицательных элементов",0dh,0ah,

" = %d ",0dh,0ah,0ah,

"Автор программы: НТУ ХПИ",0

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

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

xor edx,edx ; заповнювання нулями

mov ebx,2 ; завантаження кількості рядків

lea esi,str1 ; завантаження адреси першого рядка структури

m5: mov ecx,4 ; кількість елементів у рядку

m3: mov eax,[esi] ; завантаження елемента з рядка структури

add eax,0 ; визначення ознак елемента

js m1 ; перейти на m1, якщо елемент негативний

jmp m2 ; безумовний перехід, якщо навпаки

m1: add edx,eax ; додавання негативних елементів рядка структури

m2: add esi,4 ; підготовка адреси нового елемента

loop m3 ; есх := ecx – 1 та перехід на m3, якщо не нуль

dec ebx ; ebx := ebx – 1

jz m4 ; якщо ebx = 0 (z = 1), то перехід на закінчення

lea esi,str2 ; завантаження адреси нового рядка

jmp m5 ; перехід на новий цикл

m4:

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

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

ADDR ifmt, edx ; адреса рядка перетворення формату та регістр перетворення

invoke MessageBox, 0, addr buf, ; адреса рядка, яка містить текст повідомлення

addr titl1, MB_ICONINFORMATION+180000h ; заголовок та вигляд вікна

invoke ExitProcess, 0 ; повернення керування ОС Windows та вивільнення ресурсів

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

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

 
 

 

 


У результаті виконання програми отримується число -9, яке заноситься до регістра edx, а потім виводиться у вікно консолі.

Приклад 14.5.Написати програму з використанням макросів для обчислення виразу

a(a – b) – (a – b)

та слів розміром у байт.

 

Програму без виведення результату на монітор наведено в лістингу 14.6.

Лістинг 14.6:

title CopyRight by Rysovaniy A. N. RYSOV@RAMBLER.RU

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

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

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

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

include masm32macrosmacros.asm

uselib kernel32, fpu

mSubB macro _a,_b ;; макрос з ім’ям mSubB для (a – b)

mov al,_a ;; занесення змінної а

sub al,_b ;; віднімання a – b

mov res1,al ;; збереження результату у пам’яті

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

@ macro c0,c1,c2,c3 ;;макрос для запису команд в рядок

c0

c1

c2

c3

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

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

_a db 6 ; збереження в комірці пам’яті розміром в байт операнда 6

_b db 5 ; збереження в комірці пам’яті розміром в байт операнда 5

res1 db 0 ; резервування пам’яті для результату res1

buf dd ?,0 ; буфер виведення повідомлення

ifmt db " Уравнение: ", 0dh,0ah,"Y = a(a – b) - (a – b)", 0dh,0ah,0ah, ;

"При а = 6, b = 5, Y = %d",0dh,0ah,0ah, "Автор программы:",0 ;

titl db "Результат решения уравнения",0 ; назва спрощеного вікна

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

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

; виконання [a х mSubB]

@<mSubB [_a],[_b]>,<mov al,_a>,<mul res1>,<mov bx,ax>

; виконання [- mSubB]

@<mSubB [_a],[_b]>,<movzx ax,res1>,<sub bx,ax>,<movzx ebx,bx>

invoke wsprintf, ADDR buf, ; функція перетворення числа та адр. буф. з символами

ADDR ifmt, ebx ; адреса рядка перетворення формату та регістр з результатом

invoke MessageBox, 0,addr buf, ; hwnd та адр. буфера текст повідомлення

addr titl, MB_ICONINFORMATION ; адреса заголовку вікна та вигляд вікна

invoke ExitProcess, 0 ; повернення керування ОС Windows та визволення ресурсів

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

 

 

Для виведення чисел на екран за допомогою АРІ-функцій необхідно, щоб результат був розташований у 32-розрядному регістрі. Тому в програмі використано команду movzx, яка розширює результат до 32-розрядного формату. Результат виконання програми наведено на рис. 14.7.

 
 

 

 


Висновки: …

 

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

 

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

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

Поглибити і закріпити знання з архітектури МП платформи х86 і навички його програмування

Мета заняття... поглибити і закріпити знання з архітектури МП платформи х і навички його... придбати практичні навички складання налагодження і виконання програм з використанням структур та АРІ функцій під...

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

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

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

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

Завдання 1
1. Задано матрицю 3 ´ 5. Виконати транспонування цієї матриці. Результат виконання програми вивести у вікно консолі. 2. Задано матрицю 6 ´ 6. Визначити суму елементів під голов

Завдання 2
1. Задано послідовність структур. Структура містить поля: назва автомобіля, порядковий номер, ім’я власника, кількість порушень. Обчислити кількість власників з більш ніж з трьома порушеннями.

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

Завдання 1
1. (2a/b) + a/3,1b; 6. (1,1ab – 3)/ab; 2. 1,1(x – a) + 210/(x – a); 7. 2,3(a – b) + 2,3(a – b)/a;

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