- •Лабораторна робота 1.
- •1. Символи.
- •2 Представлення чисел у пам’яті пеом.
- •2.1 Цілі числа. Цілі числа без знака
- •2.2 Цілі числа зі знаком
- •3 Дійсні числа.
- •3.1 Представлення дійсних чисел у двійковому нормалізованому виді.
- •3.2 Машинні формати дійсних чисел
- •3.2.1. Формат 32 біти - float (або single)
- •3.2.2. Формат 64 біти - double
- •4. Завдання на лабораторну роботу.
- •5. Методичні вказівки з оформлення звіту
- •6. Рішення типового прикладу (без оцінки похибки перетворення)
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 2.
- •1. 3 Формати файлів, що виконуються, які підтримуються у fasm
- •2. Завдання на лабораторну роботу:
- •3. Методичні вказівки з оформлення звіту
- •4. Питання для самоперевірки.
- •Лабораторна робота 3.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1 Команди пересилання даних.
- •3.1.3 Операції зі стеком:
- •3.2 Робота із налагоджувачем OllyDbg.
- •3.2.2. Розглянемо основні команди меню OllyDbg.
- •4. Завдання на лабораторну роботу.
- •9. Література
- •Лабораторна робота 4.
- •3.2. Операції із прапорами процесора:
- •3.3 Команди розповсюдження знаку
- •4. Методичні вказівки з оформлення звіту
- •5. Рішення типового прикладу.
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 5.
- •3.2. Команди зсуву
- •3.3 Команди сканування бітів
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 6.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні зведення.
- •3.1. Команди безумовної передачі управління
- •3.1.1. Команда безумовного переходу jmp
- •3.2. Команди умовної передачі управління Jcc
- •3.2.1. Перша група команд умовного переходу.
- •3.2.2 Друга група команд умовного переходу.
- •3.2.3. Третя група команд умовного переходу.
- •3.3. Команди управління циклами looPx
- •3.3.1. Команда loop — перехід по лічильнику
- •3.3.2. Команда loope (loopz) перехід по лічильнику і якщо дорівнює
- •3.3.3. Команда loopne (loopnz) перехід по лічильнику і якщо не дорівнює
- •4. Методичні вказівки з оформлення звіту
- •5. Приклади використання бітових команд
- •6. Завдання на лабораторну роботу.
- •7. Критерії оцінювання.
- •8. Питання для самоперевірки
- •9. Література
- •Лабораторна робота 7.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •3.1. Реалізація основних операцій по обробці масивів мовою асемблера.
- •4. Методичні вказівки з оформлення звіту
- •5. Критерії оцінювання.
- •6. Завдання на лабораторну роботу.
- •7. Питання для самоперевірки
- •8. Література
- •Лабораторна робота 8.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролю.
- •3. Короткі теоретичні відомості.
- •4. Приклади виконання деяких типових задач обробки рядків
- •4. Завдання на лабораторну роботу.
- •Лабораторна робота 9.
- •1. Підготовка до роботи.
- •2. Питання для самоконтролеві.
- •3. Короткі теоретичні відомості
- •3.1. Принципи організації підпрограм
- •3.2. Параметри процедур і значення, що повертаються
- •3.3. Використання загальних перемінних у процедурах
- •3.4. Особливості fasm по організації підпрограм (Windows - додатка).
- •Лабораторна работа 10-11.
- •3.1.2. Засобу bios
- •3.2. Уведення з клавіатури
1. 3 Формати файлів, що виконуються, які підтримуються у fasm
На відміну від інших асемблерів, при написанні програми вид файлу, що виконується, задається однією директивою format. Fasm підтримує наступні вихідні формати файлів, що виконуються:
а) за замовчуванням fasm генерує непереміщуваний двійковий образ, (програми „com” або „sys”);
б) використання директиви 'format mz' дасть можливість одержати переміщувану і мультисегментну „exe”-програму для реального режиму роботи мікропроцесора.
в) використання директиви 'format pe' змусить fasm генерувати файл, що буде виконуватися у Windows (у режимі командної оболонки або у графічному режимі);
г) coff (common object file format – стандартний формат об’єктного файлу), використайте директиву “format coff” або “format ms coff”.
д) формат elf - для операційної системи Unix.
Таким чином, FASM дозволяє створювати програми, що можуть бути запущеними у різних операційних системах у реальному або захищеному режимах мікропроцесора.
Директиви “use16” і “use32” указують асемблеру генерувати 16-бітний або 32-бітний код, зневажаючи настроюванням за замовчуванням для обраного формату виводу, “use64” включає генерування коду для довгого режиму процесорів x86
1.4 Каркасні програми на асемблері та С++
У fasm напишемо програму cdecl. asm та згенеруємо об’єктний модуль cdecl. obj, жирним текстом виділено обов’язкові елементи
format coff ; формат файлу
public _AddInts ; ім’я процедури
_AddInts:
push ebp
mov ebp, esp
mov eax, dword [ebp+8]
add eax, dword [ebp+12]
pop ebp
ret
У Microsoft Visual Studio. Net
1. Створимо консольний додаток Win32 console project
2. Скопіюємо в каталог проекту скомпільований асемблерний модуль, наприклад cdecl. obj
3. Підключимо цей модуль у проект (рисунки 9, 10)
У файлі new. cpp оголосимо зовнішню функцію:
// new. cpp: Defines the entry point for the console application.
#include “stdafx. h”
//!!! обратите внимание – имя вызываемой функции в общем случае
// не соотвествует имени ассемблерного модуля!!!!!
extern “C” int _cdecl AddInts (int i1, int i2);
int _tmain (int argc, _TCHAR* argv [])
{
int a, b, rez;
scanf ("%d %d”, &a,&b); // вводим целые значения
rez=AddInts (a, b);
// выводим целое значение и переходим на следующую строку
printf (“Rez=%d \n”, rez);
// задерживаемэкран вывода до нажатия любой клавиши
system (“pause”);
return 0;
Рисунок 9
Рисунок 10
2. Завдання на лабораторну роботу:
Створити каркасний додаток, та перевірити його роботу.
3. Методичні вказівки з оформлення звіту
Звіт до лабораторної роботи повинен містити:
тему лабораторної роботи;
формулювання мети і задач, що вирішуються в ході виконання роботи;
докладний звіт про порядок створення програми на мові асемблера;
докладний звіт про порядок створення додатку у Microsoft Visual Studio. Net на мові С++;
порядок підключення модулів до проекту на С++;
протокол роботи тестового каркасного додатку;
висновки.
4. Питання для самоперевірки.
Призначення й функції IDE.
Призначення й функції транслятора.
Призначення й функції інтерпретатора.
Призначення й функції компілятора.
Призначення й функції редактора зв’язків.
Призначення й функції налагоджувача.
Призначення й функції fasm
Відмінність fasm і IDE fasm
Порядок створення проекту на мові асемблера.
Порядок створення проекту на мові С++.
Який формат файлу треба вказати у програмі на fasm, щоб створити об’єктний файл?
Який формат файлу треба вказати у програмі на fasm, щоб створити файл, що виконується у Win32?
Як підключити асемблерний модуль до програми C++?
З яким видом додатків Windows Ви працювали при створенні каркасного додатку?