Листинг 1 Сканирование битов ;prg_9_1.asm masm model small stack 256 .data ;сегмент данных .code ;сегмент кода main: ;точка входа в программу mov ax,@data mov ds,ax ;... .486 ;это обязательно xor ax,ax mov al,02h bsf bx,ax ;bx=1 jz m1 ;переход, если al=00h bsr bx,ax m1: ;... mov ax,4c00h ;стандартный выход int 21h end main |
В последних моделях микропроцессоров Intel в группе логических команд появилось еще несколько команд, которые позволяют осуществить доступ к одному конкретному биту операнда. Операнд может находиться как в памяти, так и в регистре общего назначения. Положение бита задается смещением бита относительно младшего бита операнда. Значение смещения может задаваться как в виде непосредственного значения, так и содержаться в регистре общего назначения. В качестве значения смещения вы можете использовать результаты работы команд bsr и bsf. Все команды присваивают значение выбранного бита флагу cf.
операнд,смещение_бита (Bit Test) — проверка бита.
Команда переносит значение бита в флаг cf.
bt ax,5 ;проверить значение бита 5 jnc m1 ;переход, если бит = 0 |