В настоящее время я использую чип из школы, который имеет ограниченное количество инструкций. То, что я хочу достичь, это сначала переключить один бит с помощью маски, а затем установить несколько бит в ноль. Доступны только 3 инструкции: И, ИЛИ, XOR. (Без SHIFT НЕ инструкция)Как переключить 1 бит и установить 1 бит в 0 в сборке только с XOR, OR, AND?
, например
0001 1001 // toggle bit 5
0000 1001
0001 1001 // set bit 1 to 0
0001 1000
Я пытаюсь генерировать ШИМ с H-моста.
Edit:
Исправлено:
; toggle bits
LOAD R0 [GB+OUTPUT_BUF]
XOR R0 CONV_FORW_MASK
XOR R0 FLIP_FORW_MASK
XOR R0 PUSH_FORW_MASK
XOR R0 PUSH_BACK_MASK
; set mask bit to zero
LOAD R1 PUSH_FORW_MASK
XOR R1 -1
AND R0 [R1]
goto wikipedia и посмотрите таблицу истины для xor, а также, или, таблица истинности все объяснит. –
без NOT, я не могу найти способ сделать это –
у вас есть все необходимое для переключения, установки и очистки –