2. Регістр DS.
Регістр сегмента даних містить початковий адрес сегмента даних. Ця адреса плюс величина зсуву, визначена в команді, вказують на конкретний осередок у сегменті даних.
3. Регістр SS.
Регістр сегмента стека містить початковий адрес в сегменті стека.
4. Регістр ES. Деякі операції над рядками використовують додатковий сегментний регістр для керування адреси цієї пам'яті. У даному контексті регістр ES зв'язаний з індексним регістром DI. Якщо необхідно використовувати регістр ES, асемблерна програма повинна його інніціалізувати.
Регістри загального призначення: AX, BX, CX і DX
При програмуванні на асемблере регістри загального призначення є "робочими конячками". Особливість цих регістрів полягає в тому, що можлива адресація їх як одного цілого чи слова як oднобайтової частини. Лівий байт є старшою частиною (high), a правий - молодшою частиною (low). Наприклад, двобайтовий регістр CX складається з двох однобайтових: CH і CL, і посилання на регістр можливі по кожному з цих трьох імен. Наступні три асемблерні команди засилають нулі в регістри CX, CH і CL, відповідно:
MOV CX,00
MOV CH,00
MOV CL,00
1. Регістр AX. Регістр AX є основним суматором і застосовується для всіх операцій уведення-висновку, деяких операцій над рядками і деяких арифметичних операцій. Наприклад, команди множення, розподілу і зрушення припускають використання регістра AX. Деякі команди генерують більш ефективний код, якщо вони мають посилання на регістр AX.
AX: ¦ AH ¦ AL ¦
2. Регістр BX. Регістр BX є базовим регістром. Це єдиний регістр загального призначення, що може використовуватися в якості "індексу" для розширеної адресаціі. Інше загальне застосування його - обчислення.
BX: ¦ BH ¦ BL ¦
3. Регістр CX. Регістр CX є лічильником. Він необхідний для керування числом повторень циклів і для операцій зрушення уліво або вправо. Регістр CX використовується також для обчислень.
CX: ¦ CH ¦ CL ¦
4. Регістр DX. Регістр DX є регістром даних. Він застосовується для деяких операцій уведення/висновку і тих операцій множення і розподілу над великими числами, які використовують реєстрову пару DX і AX.
DX: ¦ DH ¦ DL ¦
Будь-які регістри загального призначення можуть використовуватися для додаваня і вирахування як 8-ми, так і 16-ти бітових значень.
Реєстрові покажчики: SP і BP
Реєстрові покажчики SP і BP забезпечують системі доступ до даних у сегменті стека. Рідше вони використовуються для операцій додавання і вирахування.
1. Регістр SP. Покажчик стека забезпечує використання стека в пам'яті, дозволяє тимчасово зберігати адреса і інколи дані. Цей регістр зв'язаний з регістром SS для адреси цього стека.
2. Регістр BP. Покажчик бази полегшує доступ до параметрів: даним і адресам переданим через стек.
Індексні регістри: SI і DI
Обоє індексні регістри можливі для розширеної адресації і для використа- ння в операціях додавання і вирахування.
1. Регістр SI. Цей регістр є індексом джерела і застосовується для деяких операцій над рядками. У даному контексті регістр SI зв'язаний з регістром DS.
2. Регістр DI. Цей регістр є індексом призначення і застосовується також для строкових операцій. У даному контексті регістр DI зв'язаний з регістром ES.
Регістр командного покажчика: 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егістр.
... кодами сканування клавіатури (scan-коды). Код віджимання є двобайтовим: перший байт рівний F0h, а другий байт збігається з кодом натиснення. Є три рівні програмування підсистеми клавіатури: 1) на фізичному рівні (програмування портів 60h і 64h контроллера клавіатури); 2) за допомогою BIOS ( INT 09h, INT 16h ); 3) за допомогою переривання DOS ( INT 21h ). Для виконання введення даних з клаві ...
... обміну даними з ПЭВМ у процесі виконання програми користувача; 11. Вкажіть типи буферних схем, використаних в УУМС-2. Їх призначення та особливості роботи. 12. Дайте визначення адресного простору мікропроцесорної системи та розпишіть його розподіл в УУМС-2. Адресний простір УУМС складається з областей, состав яких показаний у табл.2. Варто звернути увагу, що внутрішні адресні області ...
... Сван Том. – К.: Диалектика, 1997. – 480с., ил. 7. Секреты Delphi 2: Пер. с англ./Рэй Лишнер. – К.: НИПФ «ДиаСофтЛтд.», 1996. – 800 с. ДОДАТОК ТЕКСТ ПРОГРАМИ “ВІЗУАЛЬНИЙ ОБЛІК ВХІДНИХ ДАНИХ ІНТЕРФЕЙСУ RS-232” Текст основної програми program Project1; uses Forms, MainForm in 'MainForm.pas' {Form1 Головна форма}, GraphicDiagram in 'GraphicDiagram.pas', Unit3 in 'Unit3.pas' ...
... CF (a+b+CF), і розміщує результат замість першого операнда. Обмеження на операнді такі ж, як і в команді ADD. Установлюються прапорці AF, CF, OF, FF, SF, ZF. Ця команда використовується для програмування арифметичних операцій над довгими цілими числами. ІNC a - Збільшення на 1. Команда додає 1 до значення операнда а. Операнд може знаходитися в пам'яті або в регістрі. Установлюються прапорці AF, ...
0 комментариев