model tiny
.data
bits dw 0FFh
.code
org 100h
start:
mov ax,bits ; исходное слово
mov dx,1 ; для проверки битов
@next:
test ax,dx ; проверка бита
jz @set_bit ; если 0, то установить
shl dx,1
jnz @next
jmp @exit
@set_bit:
or ax,dx ; установить бит
@exit:
retn
end start
.model tiny, C
.386
.code
.startup
call SetBit,0f7fh
call SetBit,0ffffh
.exit 0
SetBit proc w:word
not w ;будем искать первую 1 (вместо 0)
bsf cx, w ;в CX будет номер первой 1
; или не поменяется (для 0ffffh,
; для которого можно устанавливать любой бит)!!!
not w ;вернем в исходное состояние
mov ax, w ;исходное слово
bts ax, cx ;установим найденный бит
ret
SetBit endp
end
mov ax,57
xor cx,cx
inc cx
rcr ax,1
jc 105
stc
rcl ax,cl
int3
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.