Зміст звіту - раздел Образование, Виконати дослідження переводу чисел з десяткової в двійкову систему числення 1. Постановка Задачі Для Отриманого Варіанта Завдаання.
2. Блок-Схем...
1. Постановка задачі для отриманого варіанта завдаання.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програм: головної та зовнішньої процедури з детальним коментарем та описом роботи.
4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання виразу.
5. Короткий опис виконання програми.
6. Висновки за результатами роботи.
Приклад 7.9.Хай потрібно обчислити вираз ab – c/d , де а, b, с, d – цілі числа розміром у подвійне слово.
Обчислення виконаємо за допомогою однієї процедури, яка розташована у файлі 9_14_1L.asm, що обчислює ab – cd. В головній програмі виконується тільки виклик зовнішньої процедури.
Складемо схему виконання прикладу (рис. 7.14).
Дробова частина результату запам’ятовується у комірці пам’яті з ім’ям res[0], а щодо цілої частини, то старша – у комірці res[8], а молодша – у res[4].
Згідно зі схемою складемо головну та додаткову програми. Головну програму з іменем 9_14L.asm наведено у лістингу 7.25.
Лістинг 7.25. Головна програма обчислення виразу ab – c/d.
title CopyRight by Rysovaniy A. N.
.386 ; директива визначення типу мікропроцесора
.model flat ; завдання лінійної моделі пам’яті
Extern _abcd:proc ; указання на зовнішню процедуру
Public _a, _b,_c, _d, _res ; доступ для інших модулів
.data ; директива визначення даних (ab – c/d)
_a dd 0FFFFFFFFh ; запис у 32-розрядну комірку з ім’ям _а
_b dd 0FFFFFFFFh ; 4294967295
_c dd 0FFFFFFFFh ; запис у 32-розрядну комірку з ім’ям _с
_d dd 0FFFFFFFh ; запис у 32-розрядну комірку з ім’ям _d
_res dd 3 dup(0) ; комірки для збереження результату
.code ; директива початку програми
_start: ; мітка початку програми з ім’ям _start
call _abcd ; виклик процедури
ret ; повернення керування ОС
end _start ; директива закінчення програми з ім’ям _start
Як команда асемблеру програма з лістингу 7.25 складається з однієї команди call _abcd. Всі інші команди наведено у іншому файлі, який містить процедуру обчислення виразу ab – c/d (лістинг 7.26).
Лістинг 7.26. Текст процедури з іменем _abcd:
title CopyRight by Rysovaniy A. N.
.386 ; директива визначення типу мікропроцесора
.model flat ; завдання лінійної моделі пам’яті
public _abcd
extern _a:dword, _b:dword, _c:dword,_d:dword,_res:dword
.code ; директива початку програми
_abcd proc ; ab - c/d
mov eax,_a ; пересилання з комірки пам’яті з ім’ям _а в eax
mov ebx,_b ; пересилання з комірки пам’яті з ім’ям _b в ebx
mul ebx ; edx, eax := eax × ebx
mov esi,eax
mov edi,edx
mov eax,_c
mov ebx,_d
xor edx,edx ; підготування до ділення
div ebx
mov ecx,0
sub ecx,edx ; віднімання дробової частині з цілого числа
mov _res[0],ecx ; запам’ятання дробової частини у пам’яті
sbb esi,eax ; віднімання цілої молодшої частини
mov _res[4],esi ; запам’ятовування молодшої цілої частини у пам’яті
sbb edi,0 ; віднімання позики, якщо вона є
mov _res[8],edi ; запам’ятовування старшої цілої частини у пам’яті
ret
_abcd endp
end ; директива закінчення програми
При написанні програми слід звернути увагу на команду ділення, яка потребує перед її виконанням ініціювати (обнулити) регістр EDX. Якщо цього не зробити, то незважаючи на те, що буде створено exe-файл, при покроковому виконанні здійсниться зависання програми.
Результатом виконання програми, розташованої у двох файлах, є число FFFF FFFD FFFF FFF0,FFFF FFF1h, яке можна побачити на рис. 7.15 у вікнах налагоджувача.
Все темы данного раздела:
Вхідний контроль знань
1. Перевести числа вашого дня, місяця та року народження у двійкову, вісімкову та шістнадцяткову системи числення.
2. Перевести число DD.MM у двійкову та шістнадцяткову системи числення дл
Порядок виконання роботи
Для виконання завдання №1 необхідно вибрати свій варіант із табл. 3.3 та записати тільки число X зі знаками.
Таблиця 3.3 – Варіанти завдань
Link.exe /subsystem:console Lab1.obj.
Скопіювати вигляд налагоджувача у звіт можна, натиснувши клавіші PrtScr або Alt + PrtScr.
Потім треба викликати налагоджувач OllyDbg (http://cracklab.ru/_dl/new/ollydbg110xp.rar або www.ol
Вхідний контроль знань
Написати та налагодити програму згідно з одержаним варіантом завдання. Результат записати у пам’ять.
1. Скласти день, місяць та рік свого народження.
2. Перемножити день, місяць т
Постановка задачі
Згідно з номером в групі вибрати варіант та написати на асемблері програму обчислення одного з виразів:
1. a – ab – e/c; 5. a – de – e/b; 9. (de – e)/(c – a);
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Лістинг програми з детальним коментарем та описом роботи.
3. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмо
Вхідний контроль знань
Написати та налагодити програму згідно з отриманим варіантом та оформити її у вигляді процедури з параметрами. Результат записати у пам’ять.
1. Виконати операцію логічного додавання дня та
Постановка задачі
Згідно з номером студента в групі вибрати варіант завдання та написати на асемблері програму обчислення одного з виразів:
1. 2d/с – сd; 8. 2ab – 8c/b; 15.
Зміст звіту
1. Постановка задачі для отриманого варіанта завдання.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем.
3. Лістинг програми з детальним коментарем до кожної кома
Постановка задачі
Згідно з номером студента в групі вибрати варіант завдання та написати на асемблері програму обчислення одного з виразів:
1. 2(a – bс) + e/d; 9. 8c – 6ad
Завдання 1.
Згідно з останньою цифрою номера студента в групі вибрати варіант завдання та написати на асемблері програму обчислення одного з прикладів з введенням та виведенням даних. П
Завдання 2.
Згідно з останньою цифрою номера студента в групі вибрати варіант завдання та написати програму з виведенням даних у файл та на екран монітора з використанням функції MessageBox (Mes
Зміст звіту
1. Постановка задачі для конкретного варіанта завдання.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програми та коментарі до всі
Постановка задачі
Згідно з останньою цифрою номера в групі вибрати варіант завдання та написати на асемблері програму обчислення одного з виразів з використанням дійсних чисел та виведенням їх на екран. При цьому об
Методичні рекомендації
Для налагодження остаточного варіанта програми спочатку необхідно налагодити частину програми з отриманням одного результату та його виведенням. На другому етапі – отримання масиву результатів. На
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Блок-схема алгоритму виконання прикладу.
3. Лістинг програми з детальним коментарем та описом роботи.
4. Рrint screen ек
Постановка задачі
Згідно з цифрою номера студента в групі вибрати свій варіант та написати програму з використанням команд обробки рядків,з обов’язковим використанням операцій введення та виведення.
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програми з виведенням даних на екран
Постановка задачі
Згідно з останньою цифрою номера студента в групі вибрати свій варіант та написати програму з використанням директив умовного асемблювання та дійсних чиселз обов’язковим виведенням
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програми та коментарі до всіх команд.
Завдання 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;
Зміст звіту
1. Постановка задачі для конкретного варіанта.
2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.
3. Лістинг програми та коментарі до всіх команд.
DATE1 ENDS
.data ; директива визначення даних
str1 DATE1 <1,-1,-2,3> ; структура з іменем str1
str2 DATE1 <0,-2,-1,-3> ; структура з іменем str2
Постановка задачі
Згідно з останньою цифрою номера студента в групі вибрати свій варіант та написати програму на асемблері обчислення одного з виразів:
1. Задано масив А з N = 5 елементів. Нав
Деталі реалізації
Для виконання завдання було розроблено дві динамічні бібліотеки: ArrHandler.dllта ConsoIeIO.dll.Перша містить функції обробки масивів, друга – функції введення/вив
Public WriteLine
GetNum proto
PrintNum proto Number :DWORD
WriteLine proto
BSIZE equ 12
.data
hInst dd 0
stdin dd 0
stdout dd 0
rdn dd 0
GetNum proc
; вивести запрошення
invoke WriteConsole, stdout, offset msg, MS, offset wrtn, 0
; прочитати число в символьному вигляді
invoke ReadConsole, stdin, offset buff, BSIZE, of
Новости и инфо для студентов