→ Пошук по сайту       Увійти / Зареєструватися

Система команд процесорів Intel

Нижче приводиться алфавітний перелік команд процесорів Intel з коротким описом дії кожної команди і прикладами її використання.
У розділах статей, що починаються з позначення 386+, описуються відмінності дії даної команди в сучасних 32-розрядних процесорах (80386, i486, Pentium). Як правило, ці відмінності полягають в можливості використання не тільки 8- і 16-розрядних, але і 32-розрядних операндів, а також розширених режимів адресації пам'яті. Звичайні 16-розрядні програми реального режиму цілком можуть використовувати розширені регістри процесора (ЕАХ, ЕВХ і інш.), 32-бітові елементи пам'яті і варіанти команд для їх обробки. Для того, щоб асемблер правильно транслював команди з 32-розрядними операндами, в програму необхідно включити директиву асемблера .386 (можна також використовувати директиви .486 або .586), а сегменту команд (і у багатьох випадках сегменту даних) додати описувач use 16:

.386

codes segment use 16

assume Cs:codes

codes ends

data segment use16

data ends 


Окрім цього, необхідно дозволити компонувальнику обробляти 32-розрядні операнди, що для компонувальника TLINK здійснюється вказівкою ключа /3.

Окремі статті, що починаються з позначень 386+, 486+ і Pentium+, присвячені командам, відсутнім в МП 86. Багато хто з цих команд (наприклад, команди перевірки бита И або умовної установки байта set) носить прикладний характер і може використовуватися в звичайних програмах реального режиму.

Нові команди, реалізовані вперше в МП 80386, зберігають своє значення і в сучасніших процесорах. Для того, щоб асемблер розпізнає команди МП 80386, в програмі має бути присутньою директива .386.

Нові команди, реалізовані вперше в МП 80486, зберігають своє значення і в процесорах Pentium. Для того, щоб асемблер розпізнає команди МП 80486, в програмі має бути присутньою директива .486.

Для того, щоб асемблер розпізнавав команди, реалізовані вперше в процесорі Pentium, в програмі має бути присутньою директива .586.

Ряд команд вимагає для свого виконання спеціальних умов, зазвичай відсутніх в додатках MS-DOS. Так, наприклад, команда bound (перевірки індексу масиву на вихід за межі) при виявленні виходу за межі генерує переривання з вектором 5. Це переривання в захищеному режимі якраз і є виключенням порушення меж масиву, але в додатках MS-DOS використовується для виводу на друк вмісту екрану. Тому використання таких команд в реальному режимі утруднене.

Окремі статті, що починаються з позначення 386р+, присвячені привілейованим командам сучасних процесорів, що працюють в розширеному режимі, і відсутнім в МП 86. Для використання цих команд в програму необхідно включити директиву асемблера .386р (можна також використовувати директиви .486р або .586р). Якщо при цьому програма реалізується, як 16-розрядний додаток MS-DOS, сегмент команд повинен мати описувач usc16 (за наявності директиви .386 транслятор за умовчанням створює 32-розрядне застосування). Слідує, проте, мати на увазі, що привілейовані команди захищеного режиму призначені для використання не в прикладних програмах, а в операційних системах захищеного режиму. У прикладних програмах привілейовані команди доводиться використовувати лише у вельми спеціальних випадках, коли, наприклад, прикладна програма запускається в реальному режимі під управлінням MS-DOS, але потім переводить процесор в захищений режим і далі використовує переваги цього режиму. Типовий приклад програми такого роду - додаток DOS, якому потрібно використовувати всю оперативну пам'ять комп'ютера. У справжній книзі, присвяченій, в основному, реальному режиму, дається лише перерахування привілейованих команд захищеного режиму.

загрузка...
Сторінки, близькі за змістом