PIC/assembly,在寄存器之间复制并旋转 10 位

PIC/assembly, copy and rotate 10-bits between registers

PIC18F252

在汇编中:

从 A/D 转换,我在结果寄存器 ADRESH 和 ADRESL 中有一个左调整或右调整的 10 位结果。

将这 10 位从第 5 位到 TMR0L 第 4 位放入 TMR0H 的聪明方法是什么?

更具体地说,前面有两个 11:

XXXX XXXX XX00 0000 ADRESH ADRESL => 
11XX XXXX XXXX 0000 TMR0H TMR0L

未测试...

bsf     STATUS, _C    ;Set Carry 
rrcf    ADRESH, f     ;Do 16 bit shift right of ADRES 
rrcf    ADRESL, f
bsf     STATUS, _C    ;Set Carry 
rrcf    ADRESH, w     ;Do high byte shift right
movwf   TMR0H         ;Copy WREG to destination 
rrcf    ADRESL, w     ;Do low byte shift right 
movwf   TMR0L         ;Copy WREG to destination 

另请阅读数据表如何更新 TMR0:10.4 16 位模式定时器读取和 写