Виконати дослідження переводу чисел з десяткової в двійкову систему числення

 

3.3. Лабораторна робота “Подання даних”

Мета заняття:

1. Виконати дослідження переводу чисел з десяткової в двійкову систему числення. Дати їх внутрішнє (машинне) подання відповідно до діапазону в знакових і беззнакових форматах типів Shortlnt (signed char), Byte (unsigned char), Integer (int), Word (unsigned int). Машинне подання даних повинне бути наведено в двійковій і шістнадцятковій системах числення.

2. Виконати дослідження переведення чисел з десяткової в двійкову систему числення. Дати їх внутрішнє (машинне) подання у форматах типів Single (float), Double (double), Extended (long double). Машинне подання даних повинне бути наведено в двійковій і шістнадцятковій системах числення.

Вхідний контроль знань

2. Перевести число DD.MM у двійкову та шістнадцяткову системи числення для 32-розрядного формату дійсного числа, де DD – день вашого народження, ММ…   Завдання № 1 “Внутрішнє подання цілочисельних даних у IBM PC”:

Зміст звіту

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

2. Протокол переведення всіх заданих чисел з десяткової у двійкову і шістнадцяткову системи числення.

3. Лістинг програм.

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

Порядок виконання роботи

  Таблиця 3.3 – Варіанти завдань № Завдання № … Наприклад, для 1-го варіанта цілі числа будуть такі:

Link.exe /subsystem:console Lab1.obj.

Потім треба викликати налагоджувач OllyDbg (http://cracklab.ru/_dl/new/ollydbg110xp.rar або www.ollydbg.de/ odbg200a.zip) та завантажити одержаний…      

Лабораторна робота

“Програмування арифметичних виразів”

Мета заняття:

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

– придбати практичні навички складання, налагодження і виконання програм, написаних мовою асемблеру для програмування арифметичних виразів для МП платформи х86.

 

Вхідний контроль знань

1. Скласти день, місяць та рік свого народження. 2. Перемножити день, місяць та рік свого народження. 3. Поділити рік свого народження на місяць народження.

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

1. a – ab – e/c; 5. a – de – e/b; 9. (de – e)/(c – a); 2. (a – d) + d/b; 6. (b – de)/(a – с); 10. (a – e)b/(a + c); 3. c + ad – e/b; 7. ae – b – d/c; 11. a – ac – e/b;

Зміст звіту

2. Лістинг програми з детальним коментарем та описом роботи. 3. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою. 4. Короткий опис виконання програми.

Лабораторна робота “API-подібні процедури

Мета заняття:

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

– придбати практичні навички складання, налагодження і виконання програм, написаних мовою асемблеру для програмування API-подібних функцій для МП платформи х86.

 

Вхідний контроль знань

1. Виконати операцію логічного додавання дня та року свого народження. 2. Виконати операцію логічного порівняння місяця та року свого народження. 3. Виконати зсув дня свого народження ліворуч на 2 розряди.

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

де a – номер студента за списком в навчальній групі; b – номер навчальної групи; c – рр – дві останні цифри свого року народження;

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем. 3. Лістинг програми з детальним коментарем до кожної команди. 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання.

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

1. 2(a – bс) + e/d; 9. 8c – 6ad – b/9e; 17. 2(c/e + a)b – d/17a; 2. 2(ce + a)b – 2d/a; 10. (a – ed)b – 10d/b; 18. (a – bc)/b + 18d; 3. (a – cb)/b + 3d; 11. (a – b)ab – 11d/e; 19. 8c – ab – b/19e;

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи. 3. Лістинг програм: головної та зовнішньої процедури з детальним коментарем та… 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання виразу.

Лабораторна робота

“Введення-виведення даних”

Мета заняття:

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

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

 

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

Завдання 1.

Варіанти завдань: 1. Задано масив А з N = 5 елементів. Навести алгоритм та програму визначення… 2. Задано масив А з N = 6 елементів. Навести алгоритм та програму визначення суми елементів масиву А, для яких біти 2…

Завдання 2.

1. Проаналізувати масив даних з 15 елементів. Підрахувати і зберегти кількість елементів масиву, якщо їх значення менше або більше 132, та кількість… 2. Проаналізувати масив даних з 10 елементів. Додавати елементи масиву доти,… 3. Проаналізувати масив даних з 16 елементів. Елементами масиву є числа 32, 64, 96 і 128. Підрахувати та вивести на…

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи. 3. Лістинг програми та коментарі до всіх команд. 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання.

Лабораторна робота

“Обробка даних у співпроцесорі”

Мета заняття:

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

– придбати практичні навички складання, налагодження і виконання програм з використанням командспівпроцесора, написаних мовою асемблеру для програмування МП платформи х86.

 

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

Кожне завдання виконати двома способами: 1. З виконанням команд співпроцесора; 2. З використанням вбудованих функцій masm32.

Методичні рекомендації

Завдання 1. Дослідити виконання арифметичних операцій співпроцесора. Результат вивести на екран функцією MessageBox з горизонтальним (в рядок)… 1. Обчислити 6 значень функції Yn = 25х3 – 2,1 (x змінюється з кроком 0.2). … 2. Обчислити 5 значень функції Yn = 7x3/(2x2 + 1,6) (x змінюється від 1 з кроком 4).

Зміст звіту

2. Блок-схема алгоритму виконання прикладу. 3. Лістинг програми з детальним коментарем та описом роботи. 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання.

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

  1. Задано текст, що складається з 6 слів по 8 символів, розділених пропуском.… 2. Задано послідовність латинських букв завдовжки 18 символів. Розставити їх за абеткою.

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи. 3. Лістинг програми з виведенням даних на екран монітора з використанням… 4. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою.

Лабораторна робота

“Директиви умовного асемблювання”

Мета заняття:

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

– придбати практичні навички складання, налагодження і виконання програм з використанням директив умовного асемблювання, написаних мовою асемблеру для МП платформи х86.

 

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

Використати функцію MessageBox разом із графічними позначками цієї функції та указати прізвище автора програми. 1. Задано масив А з N = 5 елементів. Навести алгоритм та програму визначення… 2. Проаналізувати масив даних mas1 з 6 елементів. Підрахувати і зберегти в комірках пам’яті кількість елементів…

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи. 3. Лістинг програми та коментарі до всіх команд. 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання.

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

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

Завдання 1

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

Завдання 2

2. Задано послідовність структур. Структура містить поля: ім’я студента, стипендія, середня оцінка, вік. Обчислити середній вік студентів. 3. Задано послідовність структур. Структура містить поля по кредитній картці:… 4. Задано послідовність структур. Структура містить поля (відповідно до комп’ютера): серійний номер, ціна, назва,…

Макроси. Постановка задачі

Завдання 1

2. 1,1(x – a) + 210/(x – a); 7. 2,3(a – b) + 2,3(a – b)/a; 3. x + a – 4,5/(x + a); 8. 5,6(ab + d)/[5,6(ab – d)]; 4. 3,5(a – b) – (a – b)/5,1; 9. (de – e)/[2,2(de – e)];

Зміст звіту

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи. 3. Лістинг програми та коментарі до всіх команд. 4. Рrint screen екрана 32-розрядного налагоджувача з виконанням програми та результатами виконання.

DATE1 ENDS

str1 DATE1 <1,-1,-2,3> ; структура з іменем str1 str2 DATE1 <0,-2,-1,-3> ; структура з іменем str2 st1 db " amount of negative elements ",0

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

1. Задано масив А з N = 5 елементів. Навести алгоритм та програму визначення кількості елементів масиву А, які задовольняють умову L < Ai ≤… 2. Задано масив А з N = 7 елементів. Навести алгоритм та програму визначення… 3. Задано масив А з N = 7 елементів. Навести алгоритм та програму визначення кількості елементів масиву А, які…

Зміст звіту

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

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

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

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

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

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

 

Приклад 15.1.

Задано масив А з N = 6 елементів. Навести алгоритм та програму визначення кількості елементів масиву А, які задовольняють умову L ≤ Аі <М, де L = 3 та М = 15.

Деталі реалізації

Головна програма використовує функції: – створення масиву; – додавання нових елементів у масив;

Public GetNum

Public PrintNum

Public WriteLine

PrintNum proto Number :DWORD WriteLine proto BSIZE equ 12

GetNum proc

invoke WriteConsole, stdout, offset msg, MS, offset wrtn, 0 ; прочитати число в символьному вигляді invoke ReadConsole, stdin, offset buff, BSIZE, offset rdn, 0