B
386+ BTR Проверка и сброс бита
Команда btr проверяет определенный бит в слове, заданном первым операндом, копирует его значение в флаг CF и сбрасывает. Номер бита выступает в качестве второго операнда. Первым операндом команды btr может служить регистр или ячейка памяти, вторым – регистр или непосредственное значение.
В команде допустимо использование как 16-битовых, так и 32-битовых операндов, но и первый, и второй операнды должны быть одного типа (за исключением случая, когда второй операнд – константа).
Пример 1:
mov AX,00Fh; Анализируемое данное btr АХ, 5; AX=00DFh. Бит 5 был = 1 ;Сброс бита 5, ZF=1
Пример 2:
mov AX,00FFh; Анализируемое данное btr AX, 8; AX=0FFh Бит 8 был =0 ;Остался 0, ZF=0
Пример 3:
mov AX,8001h; Анализируемое данное mov BX,15; Номер проверяемого бита btr AX,BX; AX=0001h Бит 15 был = 1 ;Сброс бита 15, ZF=1
Пример 4:
;В полях данных mem dw IFh ;В программном сегменте: ;Анализируемое данное btr mem,10; mem=lFh Бит 10 был = 0 ;Остался 0, ZF=0
386+ BTS Проверка и установка бита
Команда bts проверяет определенный бит в слове, заданном первым операндом, копирует его значение в флаг CF и устанавливает. Номер бита выступает в качестве второго операнда. Первым операндом команды bts может служить регистр или ячейка памяти, вторым – регистр или непосредственное значение. В команде допустимо использование как 16-битовых, так и 32-битовых операндов, но и первый, и второй операнды должны быть одного типа (за исключением случая, когда второй операнд – константа).
Пример 1:
mov AX,OOFFh; Анализируемое данное bts AX, 5; AX=OOFFh Бит 5 был = 1 ;Остался 1, ZF=1
Пример 2:
mov AX,OOFFh; Анализируемое данное bts AX, 8; AX=lFFh Бит 8 был = 0 ;Установка бита 8, ZF=0
Пример 3:
mov AX,8001h; Анализируемое данное mov BX,15; Номер проверяемого бита bts AX,BX; AX=8001h Бит 15 был = 1 ;Остался 1, ZF=1
Пример 4:
; В полях данных mem dw IFh; Анализируемое данное ;В программном сегменте: bts mem,10; mem=4lFh Бит 10 был = 0 ; Установка бита 10, ZF=0