PS: нужно толковое разъяснение командам AND, EOR и BIT
AND - побитовое 'И' (умножение):
0*1=0
1*0=0
0*0=0
1*1=1
ORA - побитовое 'ИЛИ' (сложение):
0+1=1
1+0=1
0+0=0
1+1=1
EOR - исключащее 'ИЛИ' (тоже что и ORA, но 1+1=0)
https://ru.wikipedia.org/wiki/Битовые_операции
ROL - сдвиг побитное влево, отличие от ASL, что младший бит (#0) заполняется из 'C', а не нулем.
ROR - сдвиг побитное вправо, отличие от LSR, что сташий бит (#7) заполняется из флага 'C', а не нулем.
BIT - тест разных битов, выставляется флаг знака (для BPL/BMI) (также как и у LDA), флаг V (для BVS/BVC) от 6-ого бита; флаг Z (BEQ/BNE) выставляется по формуле "число из регистра A 'AND' число из BIT".
редко используется.
AND очень часто используется чтобы протестировать отдельные биты, например отдельные кнопки джойстика, или обнулить отдельные биты из числа.
ROL+ASL (ROR+LSR) для 16-битных умножений (делений).