Есть команда (bst) загрузки любого бита любого регистра во флаг T, и команда(bld) выгрузки флага T в любой бит любого регистра, а также есть команды(brts/brtc) перехода по значению флага T.
Т.о. этот флаг упрощает работу там где требуется манипуляция с битами.
Пример:
Пусть имеется какой-то регистр в котором хряняться какие-то флаги, которые предполагается использовать в программе.
Код
.def AL = r24
.def AH = r25
.def Flags = R15 ; Пользовательский регистр флагов
.equ Flag0 = 0
.equ Flag1 = 1
.equ Flag2 = 2
.equ Flag3 = 3
...
.equ Flag7 = 7
прочитать порт B и поместить значение пина PB5 во флаг Flag0:
in AL, PinB
bst AL, PB5
bld Flags, Flag0
проверить Flag4 и если он установлен перейти на подпрограмму Proc1
bst Flags, Flag4
brts Proc1
...
Proc1:
Сообщение отредактировал defunct - Mar 27 2006, 14:56