Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kolokvium_z_OOP_2010_vsi.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
133.27 Кб
Скачать
  1. Основні поняття Асемблера, принципи написання програм на Асемблері, їхні переваги та недоліки.

Існує два підходи до написання програм:

  1. Використовуючи сучасні візуальні технології розробити проект в найкоротші терміни.

  2. Написати програму, яка максимально враховує всі особливості сучасного комп’ютера і як найоптимальніше використовує ресурси комп’ютера, а саме час ЦП і оперативну пам'ять (використовуючи Асемблер).

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

Асемблер(Assembler)програма, яка переводить нашу асемблерну програму у двійковий код, зрозумілий процесору.

Програмування на асемблері – це так зване програмування низького рівня. (assembly) – означає збирати, монтувати.

Машинна орієнтація визначає переваги і недоліки Асемблера.

Перевагою Асемблера є можливість, під час створення програми, раціонально використовувати всі особливості системи команд конкретної ЕОМ.

Іншою позитивною властивістю є універсальність Асемблера як засобу програмування. Він дає змогу скласти програму для будь якої задачі, яка має рішення і може бути розв’язана на машинах цього типу.

Асемблер дозволяє використовувати всі можливості МП максимально, програми на асемблері мають високу швидкодію та відносно малий розмір. Це необхідно для написання резидентних програм та драйверів.

Недоліком Асемблера низький рівень абстрагування від особливостей конкретної ЕОМ, необхідність їх враховувати.

Ще одним недоліком Асемблера є надто велика кількість команд та їхніх модифікацій, що підтримуються сучасними МП. Тому перенести такі програми на іншу платформу є надто важко.

Етапи розробки автономної програми на Асемблері:

  1. розробка алгоритму розв’язання задачі;

  2. написання програми на асемблері;

  3. введення програми за доп. текстового редактора і запис її у файл з розширенням *.asm;

  4. асемблювання програми (викор. TASM);

  5. лінкування за доп. TLINK;

  6. виконання в середовищі TurboDebagger’а.

2.16-розрядний режим роботи МП. 32-розрядний режим та його переваги.

Існує два варіанти роботи на Асемблері:16-ти і 32 розрядний.

У 16-ти розрядному режимі процесор працює в реальному режимі роботи, при цьому незалежно від того, скільки в нас гігабайт, нашій програмі виділяється 1 Мб. Цей режим застарілий.

Сучасні системи розробки програм працюють у 32-розрядному режимі. З погляду ОС цей режим називається захищений(в ньому одночасно може працювати багато задач, кожній з них виділяється 4 Гб віртуальної пам’яті івзаємодії між ними немає). Оскільки розмір ОП менший, то процесор організовує т. зв. «файл підкачки».

У реальному режимі роботи процесора використовуються тільки молодших 16 розрядів регістрів загального призначення(ЗП), то в захищеному режимі використовуються всі 32 розряди регістрів ЗП.

Структура програми (16-ти розрядний Асемблер):

IDEAL ;режим турбоасемблера

DOSSEG ;ми працюємо в 16-ти розрядному режимі

MODELSMALL; модель ОП

STECK 256; робоча область, яка працює за принципом LIFO

(LIFO – last in first out)

DATASEG;сегмент даних

<назва, ім’я>(напр. <DB,DW>)

CODESEG ;сегмент коду

Start:

<команди МП>

Exit:

<команди МП>

ENDSTART

Ввід-вивід здійснюється стандартними функціями ОС, а доступ до цих функцій Асемблер надає шляхом т. зв. переривань. Механізм переривання такий:

Кожне переривання має свій шістнадцятковий номер. Ці номери дозволяють вибирати адреси програм обробки переривань.А адреси стоять на початку ОП, починаючи з нульової адреси.

Якщо програма займатиме не більше 64Кб і використовуватиме модель ОП tinyто після роботи програм TASMiTLINK ми одерж. com-файл.

Все сказане стосується тільки арифметико-логічної частини ЦП, яка працює виключно з цілими числами. Для обробки дійсних чисел існує FPU(FloatingPointUnit). Він має свої команди(починаються буквою F), регістри, принципи.

У 32-розрядному режимі створюється exe-файл, який виконується у захищеному режимі під Windows. Цей регістр маніпулює регістрами типу eAx, використовує 4 Гб ОП, інтенсивно викор. Стандартні ф-ії ОС(API-функції).

Для роботи потрібний інший асемблер, ніж для 16-розрядного режиму. Для деяких 32-розрядних програм необхідно викор. генератор ресурсів RC.

3. Регістри цілочисельної арифметики Intel-сумісного МП, та функціональне призначення кожного з них.

Арифметичні регістри. Їх застосовують при виконанні більшості арифметичних операцій.

eAx/Ax/Ah/Al(Accumulator register) – акумулятор. Застосовують для зберігання допоміжних даних. У деяких командах використання цього регістра є обов’язковим.

eBx/Bx/Bh/Bl(Base register) – базовий регістр. Застосовується для зберігання базової (початкової) адреси деякої ділянки ОП.

eCx/Cx/Ch/Cl(Count register) – регістр-лічильник. Застосовується у командах, що виконують деякі дії, які повторюються. Наприклад , команда організації циклу Loop крім надання управління початковій команді тіла циклу, що знаходиться за деякою адресою, аналізує та автоматично зменшує на 1 вміст регістра eCx/Cx.

eDx/Dx/Dh/Dl(Date register) – регістр даних. Так само як і акумулятор, він зберігає проміжні дані. В деяких командах його вико-ристання є обов’язковим. Для деяких команд це відбувається неявно.

Цифри 0,8,16, які стоять зверху, вказують на початкові номери бітів кожної частини відповідного регістра. Цифра 31 – це номер останього біта. Під час роботи з 8-розрядними числами їх можна заносити або в нижню праву частину, яку позначено буквою l, або у верхнюю праву частину, яку познач. буквою h. Такий поділ регістрів передбачено з метою забезпечення працездатності програм, написаних для молод-ших 16-розрядних моделей мікропроцесорів Intel, починаючи з і8086. Префікс e означає розширений. Використовувати для самостійного адресування можна тільки молодші 16-бітові частини цих регістрів. Старші 16 біт, як самостійні частини програмістові для програмування недоступні.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]