 |
::
Меню :: |
 |
|
|
 |
::
Друзі :: |
 |
|
|
 |
::
Лічильники :: |
 |
|
|
|
386+ BSF Пряме сканування бітів
Команда bsf сканує слово або подвійне слово у пошуках біта, рівного 1.
Сканування виконується від молодшого біта (0) до старшого. Якщо в слові не
знайдено
встановлених бітів, то встановлюється прапор ZF. Якщо встановлені біти є, то номер
першого встановленого біта заноситься у вказаний в команді регістр. За номер
біта вважається його позиція в слові, відлічувана від біта 0. Як перший операнд
команди bsf слід указувати регістр, куди буде поміщений результат сканування,
як другий - регістр або елемент пам'яті з сканованим словом. У команді
bsf допустиме використання як 16-бітових, так і 32-бітових операндів (але і
перший, і другий операнди мають бути одного типу).
Приклад 1
mov Bx,70h ;Анализируемое дане
bsf
АХ, ВХ ;АХ=4, Zf=0
Приклад 2
mov Si,0 ;Анализируемое дане
bsf Bx,si ;ZF=1, у ВХ колишнє значення
Приклад 3
mov Si,8 ;Анализируемое дане
bsf Bx,si ;BX=3, Zf=1
Приклад 4
;У полях даних
mem dw 9000h Аналізоване дане
;У програмному сегменті:
bsf AX, mem;AX=000Ch=12, Zf=0
386+
BSR Зворотне сканування бітів
Команда bsf сканує шару або подвійне слово у пошуках біта, рівного 1.
Сканування виконується від старшого біта (15 або 31) до молодшого. Якщо в слові не
знайдено встановлених бітів, то встановлюється
прапор ZF. Якщо встановлені біти
є, то номер першого встановленого біта заноситься у вказаний в команді
регістр. За номер біта вважається його позиція в слові, відлічувана від біта 0.
Як перший операнд команди bsf слід указувати регістр, куди буде поміщений
результат сканування, як другий - регістр або елемент пам'яті з сканованим
словом. У команді bsf допустиме використання як 16-бітових, так і 32-бітових
операндів, але і перший, і другий операнди мають бути одного типу (за винятком
випадку, коли другий операнд - константа).
Приклад 1
mov Bx,70h ;Анализируемое дане
bsr Ax,bx ;AX=6, Zf=0
Приклад 2
mov Si,0 ;Анализируемое дане
bsr Bx,si ;ZF=1, у ВХ колишнє значення
Приклад 3
mov Si,8 ;Анализируемое дане
bsf Bx,si ;BX=3, Zf=1
Приклад 4
; У полях даних
mem dw 9000h ; Аналізоване дане
;У програмному сегменті:
bsr AX, mem;AX=000Fh=15, Zf=0
486+
BSWAP Обмін байтів
Команда bswap змінює порядок байтів в своєму єдиному операнді, як
який може виступати тільки 32-розрядний регістр загального призначення. Биті
7...0 обмінюються з бітами 31...24, а биті 15... 18 з бітами 23...16. Іншими
словами, нумерація байтів регістра змінюється на протівополжную (замість 3, 2,
1,0 - 0, 1, 2, 3). Команда не впливає на прапори процесора.
Приклад
mov ЕАХ, 01234567h
bswapeax ;EAX=67452301h
386+
ВТ Перевірка бита
Команда bt дозволяє визначити, чи встановлений в заданому
слові певний біт. Аналізоване слово виступає як перший операнд, номер бита
- як другий. Першим операндом команди bt може служити регістр або елемент
пам'яті, другим - регістр або безпосереднє значення. У команді допустиме
використання як 16-бітових, так і 32-бітових операндів, але і перший, і другий
операнди мають бути одного типу (за винятком випадку, коли другий операнд
- константа). Значення
біта, що перевіряється, копіюється в прапор
CF.
Приклад 1
mov Ax,00ffh ;Анализируемое дане
bt Ax,5 ; битий 5=1, Zf=1
Приклад 2
mov Ax,00ffh ;Анализируемое дане
bt Ax,8 ;бит 8=0, Zf=0
Приклад 3
mov Ax,8001h ;Анализируемое дане
mov
Bx,15 ;Номер біта, що перевіряється
bt
АХ, ВХ ;бит 15 = 1, Zf=1
Приклад 4
;У полях даних
mem dw Ifh ;Анализируемое дане
;У програмному сегменті:
bt mem, 4 ;бит 4 = 1, Zf=1
386+
ВТС Перевірка і інверсія бита
Команда btc перевіряє певний біт в слові, заданому першим операндом,
копіює його значення в прапор CF і інвертує. Номер біта виступає як другий
операнд. Першим операндом команди btc може служити регістр або елемент пам'яті,
другим - регістр або безпосереднє значення. У команді допустиме використання
як 16-бітових, так і 32-бітових операндів, але і перший, і другий операнди мають
бути одного типу (за винятком випадку, коли другий операнд - константа).
Приклад 1
mov Ax,00ffh ;Анализируемое дане
btc АХ, 5 ;AX=00DFh Битий 5 був = 1
;Скидання бита 5, Zf=1
Приклад 2
mov Ax,ooffh /аналізіруємоє дане
btc АХ, 8 ;AX=lFFh Битий 8 був = О
;Установка бита 8, Zf=0
Приклад 3
mov Ax,8001h ;Анализируемое дане
mov
Bx,15 ;Номер біта, що перевіряється
btc Ax,bx ;AX=0001h, Zf=1
Приклад 4
; У полях даних
mem dw Ifh
;У програмному сегменті: ; Аналізоване дане
btc mem, I /mem=leh, Zf=1
-
|
 |
::
Наша кнопка :: |
 |
|
 |
Отримати код:
|
Підтримайте наш сайт і розмістіть нашу
кнопку на своєму ресурсі. |
|
|
 |
::
Популярне :: |
 |
|
|
 |
:: Посилання :: |
 |
|
|
|