Как манипулировать определенными регистрами при сборке на PIC (18F452)? - PullRequest
1 голос
/ 20 марта 2019

У меня есть регистр TEST, и я хочу инвертировать (переключить?) Биты 1 и 2, а также поставить ноль в биты 3 и 4.

Я только начал изучать сборку и не знаю, какчтобы проверить, является ли мое решение верным, не могли бы вы сказать мне, если я вообще на правильном пути?

Вот мое предложение:

movlw B'00000010' ;toggles/inverts the bit 1

xorwf TEST,F

movlw B'00000100' ;toggles/inverts the bit 2

xorwf TEST,F

bsf   TEST, 3, 0 ;Sets the bit 3 to zero

bsf   TEST, 4, 0 ;Sets the bit 4 to zero

1 Ответ

0 голосов
/ 20 марта 2019

BSF не очищает бит.

movlw B'00000110' ;toggles/inverts the bit 1 and 2
xorwf TEST, F
bcf   TEST, 3     ;put zero to bit 3 
bcf   TEST, 4     ;put zero to bit 4

в противном случае вы можете обнулить свои биты с помощью инструкции ANDWF

molw   0b11100111   
andwf  TEST, F                ;put bit 3 and 4 to zero
...