Иллюстрированный самоучитель по Assembler

B

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 был = 0
;Установка бита 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=1Eh, ZF=1
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.