将16位数除以2 [PIC单片机]

1 pic

如果将16位值存储(在pic微控制器中)作为高字节和低字节,那么如何将它们除以2呢?如何将16位数字旋转到右边?

谢谢.

das*_*ght 6

将16位数除以2相当于将数字右移一位*.清除进位标志,将高位字节向右旋转进位,然后将低位字节向右旋转进位.你可以在这里找到它的代码:

LSR16   MACRO   VAR16
    BCF     STATUS, C       ; Clear carry
    RRF     (VAR16)+1,F     ; Rotate high byte right
    RRF     (VAR16),F       ; Rotate low byte right
    ENDM
Run Code Online (Sandbox Code Playgroud)


*当然这是一个整数除法:当奇数除以2时,它0.5被截断.