Регістр командного покажчика: IP



Регістр IP містить зсув на команду, що повинна бути виконана. Звичайно цей регістр у програмі не використовується, але він може змінювати своє значення при використанні відлагоджувача DOS DEBUG для тестування програми.

Флаговий регістр

Дев'ять з 16 бітів флагового регістра є активними і визначають поточний стан машини і результати виконання. Багато арифметичних команд і команди порівняння змінюють стан прапорів. Призначення флагових бітів:

Прапор Призначення

O (Переповнення) Вказує на переповнення старшого біта при арифметичних командах.

D (Напрямок) Позначає ліве чи праве направлення чи пересилання порівняння строкових даних (даних у пам'яті перевищуючих довжину одного слова).

I (Переривання) - Вказує на можливість зовнішніх переривань.

T (Покроковий режим) - Забезпечує можливість роботи процесора в покроковому режимі.

Наприклад, програма DOS DEBUG впливає на даний прапор так, що ймовірне покрокове виконання кожної команди для перевірки зміни вмісту регістрів і пам'яті.

S (Знак) Містить результуючий знак після арифметичних операцій (0 - плюс, 1 - мінус).

Z (Нуль) Показує результат арифметичних операцій і операцій порівняння (0 - ненульовий, 1 - нульовий результат).

A (Зовнішній перенос) Містить перенос з 3-го біта для 8-бітних даних, використовується для спеціальних арифметичних операцій.

P (Контроль парності) Показує парність молодших 8-бітних даних (1 - парне і 0 - непарне число).

C (Перенос) Містить перенос зі старшого біта, після арифметичних операцій, а також останній біт при зрушеннях або циклічних зрушеннях.

Під час програмування на асемблері, частіше всього використовуються прапори O, S, Z, і C для арифметичних операцій і операцій порівняння, а прапор D для позначення напрямку в операціях над рядками. У наступних розділах міститься більш докладна інформація про флаговий pегістр.

 

4. Тип даних в асемблері. Поняття "байт", "півбайт", "слово", та інші

ДИРЕКТИВИ ВИЗНАЧЕННЯ ДАНИХ

Асемблер забезпечує два способи визначення даних : по-перше, через указівку довжини даних і, по-друге, по їх змісту. Розглянемо основний формат визначення даних:

[ім'я] Dn вираження - Ім'я елемента даних не обов'язково (це вказується квадратними дужками), але якщо в програмі існують посилання на деякий елемент, то це робиться за допомогою імені. Правила написання імен приведені в розділі "Формат кодування" у розділі 3.

- Для визначення елементів даних існують наступні директиви: DB (байт), DW (слово), DD (подвійне слово), DQ (учетверенное слово) і DT (десять байт).

- Вираження може містити константу, наприклад: FLD1 DB 25 чи знак питання для невизначеного значення, наприклад: FLDB DB ?

Вираження може містити кілька констант, розділених комами й обмеженими тільки довжиною рядка: FLD3 DB 11, 12, 13, 14, 15, 16, ...

Асемблер визначає ці константи у виді послідовності суміжних байт. Посилання по імені FLD3 вказує на першу константу, 11, по FLD3+1 - на другу, 12. (FLD3 можна представити як FLD3+0). Наприклад команда MOV AL,FLD3+3 завантажує в регістр AL значення 14 (тичина. 0E). Вираження допускає також повторення константи в наступному форматі:

[ім'я] Dn чисел-повторень DUP (вираження) ...

Наступні три приклади ілюструють повторення:

DW 10 DUP(?); Десять невизначених слів

DB 5 DUP(14); П'ять байт, що містять тичину.14

DB 3 DUP(4 DUP(8)); Дванадцять вісімок.

У третьому прикладі спочатку генерується чотири копії десяткової 8 (8888), і потім це значення повторюється три рази, даючи в pезультате дванадцять восмерок. Вираження може містити символьний чи рядок числову константу.

Символьні рядки

Символьний рядок використовуються для опису даних, таких як, наприклад, імена людей або заголовки сторінок. Зміст рядка відмічається одиночними лапками , наприклад, 'PC' або подвійними лапками - "PC". Асемблер переводить символьні рядки в об'єктний код у звичайному форматі ASCII. Символьний рядок визначається тільки директивою DB, в якій вказується більше двох символів у нормальній послідовності ліворуч праворуч. Отже, директива DB представляє єдиний можливий формат для визначення символьних даних. На рис. 5.1 приведений ряд прикладів.

Числові константи

Числові константи використовуються для арифметичних величин і для aдресів пам'яті. Для опису константи лапки не ставляться. Асемблер перетворить усі числові константи в шістнадцяткові і записує байти в об'єктному коді в зворотній послідовності - праворуч ліворуч. Нижче показані різні числові формати.

Десятковий формат.

Десятковий формат допускає десяткові цифри від 0 до 9 і позначається останньою буквою D, що можна не вказувати, наприклад, 125 чи 125D. Незважаючи на те, що асемблер дозволяє кодування в десятковому форматі, він перетворить ці значення в шіст. об'єктний код. Наприклад, десяткове число 125 перетвориться в тичину. 7D. Шістнадцятковий формат.

Шістнадцятковий формат допускає шістнадцяткові цифри від 0 до F і позначається останньою буквою H. Оскільки асемблер думає, що з букви починаються ідентифікатори, то першою цифрою шіст. константи повинна бути цифра від 0 до 9. Наприклад, 2EH або 0FFFH, вказують на те, що асемблер перетворить відповідно в 2E і FF0F (байти в другому прикладі записуються в об'єктний код у зворотній послідовності).

Двійковий формат.

Двійковий формат допускає двійкові цифри 0 і 1 і позначається останньою буквою B. Двійковий формат звичайно використовується для більш чіткого представлення бітових значень у логічних командах AND, OR, XOR і TEST. Десяткове 12, тичина. C і двійкове 1100B усі генерують один і той же код: тичина. 0C або двійкове 0000 1100 в залежності від того, як ви розглядаєте вміст байта.

Вісімковий формат.

Вісімковий формат допускає вісімкові цифри від 0 до 7 і позначається останньою буквою Q чи O, наприклад, 253Q. На сьогодні вісімковий формат використовується дуже рідко.


Дата добавления: 2019-07-15; просмотров: 213; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!