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

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

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

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

Команди асемблера для Intel: AAA, AAD, AAM, AAS

Команда ааа використовується услід за операцією складання add в регістрі AL двох неупакованих двійково-десяткових (BCD) чисел, якщо в АХ знаходиться дворозрядне неупаковане двійково-десяткове число. Команда не має параметрів. Вона перетворить результат складання в неупаковане двійково-десяткове число, молодший десятковий розряд якого знаходиться в AL. Якщо результат перевищує 9, виконується інкремент вмісту регістра АН. Команда впливає на прапори AF і CF.

Команди асемблера для Intel: 386+ BSF, 386+ BSR, 486+ BSWAP, 386+ ВТС

Команда bsf сканує слово або подвійне слово у пошуках біта, рівного 1. Сканування виконується від молодшого біта (0) до старшого. Якщо в слові не знайдено встановлених бітів, то встановлюється прапор ZF. Якщо встановлені біти є, то номер першого встановленого біта заноситься у вказаний в команді регістр. За номер біта вважається його позиція в слові, відлічувана від біта 0.

Команди асемблера для Intel: 386+ BTR, 386+ BTS, CALL, CBW, 386+ CDQ

Команда btr перевіряє певний біт в слові, заданому першим операндом, копіює його значення в прапор CF і скидає. Номер біта виступає як другий операнд. Першим операндом команди btr може служити регістр або елемент пам'яті, другим - регістр або безпосереднє значення. У команді допустиме використання як 16-бітових, так і 32-бітових операндів, але і перший, і другий операнди мають бути одного типу (за винятком випадку, коли другий операнд - константа).

Команди асемблера для Intel: CLC, CLD, Cl1, 386р+ CLTS, СМС

Команда clc скидає прапор перенесення CF в регістрі прапорів. Команда не має параметрів і не впливає на решту прапорів процесора.

Команди асемблера для Intel: СМР, CMPS, CMPSB, CMPSW, 386+ CMPSD

Як перший операнд команди сmр можна указувати регістр (окрім сегментного) або елемент пам'яті, як другий - регістр (окрім сегментного), елемент пам'яті або безпосереднє значення, проте не допускається визначати обидва операнди одночасно, як елементи пам'яті. Операнди можуть бути байтами або словами і представляти числа із знаком або без знаку.

Команди асемблера для Intel: 486+ CMPXCHG, Pentium+ Cmpxchg8b, Pentium+ CPUID, CWD, 386+ CWDE

Команда cmpxchg виконує в одній операції порівняння і обмін операндів. Команда вимагає два параметри і неявним чином використовує третій операнд - регістр ЕАХ. Перший операнд (приймач) повинен знаходитися в 16- або 32-бітовому елементу пам'яті, другий операнд (джерело) - в регістрі загального призначення такого ж розміру. Команда виконує порівняння операнда-приймача з вмістом неявного операнда - регістра ЕАХ. Якщо порівнювані значення збігаються, операнд-приймач заміщається операндом-джерелом (тобто вміст регістра записується в пам'ять). Якщо порівнювані значення не збігаються, вміст пам'яті (приймач) поступає в регістр ЕАХ (мал. П1). Команда впливає на прапори OF, SF, ZF, AF, PF і CF.

Команди асемблера для Intel: DAA, DAS, DEC, DIV, 386+ ENTER,

Команда daa коректує результат складання в регістрі AL двох упакованих двійково-десяткових (BCD) чисел (по одній цифрі в кожному півбайті), щоб отримати пару правильних упакованих двійково-десяткових цифр. Команда використовується услід за операцією складання упакованих двійково-десяткових чисел. Якщо результат складання перевищує 99, виникає перенесення і встановлюється прапор CF. Команда впливає на прапори SF, ZF, AF, PF і CF.

Команди асемблера для Intel: HLT, IDIV, IMUL, IN, INC

Команда hlt припиняє виконання програми і переводить процесор в стан останову. Робота процесора поновлюється після операції запуску, а також у разі приходу немаскованого або дозволеного маскованого переривань.

Команди асемблера для Intel: INS, INSB, INSW, INSD

Команди призначені для введення даних з порту безпосередньо в пам'ять. Адреса порту указується, як і для команди in, в регістрі DX, при цьому завдання адреси порту безпосереднім значенням не допускається. Дані пересилаються за адресою, що знаходиться в парі регістрів Es:edi. Заміна сегменту не допускається. Команда insb переносить з порту 1 байт, команда insw - 1 слово, команда insd - 1 подвійне слово, а команда ins може бути використана для передачі байтів, слів і подвійних слів.
загрузка...
Сторінки, близькі за змістом