16 비트 값이 하이 바이트 및 로우 바이트로 (그림 마이크로 컨트롤러에서) 저장되는 경우 어떻게 2로 나누는가? 어떻게 16 비트 숫자를 올바르게 회전시킬 수 있습니까?16 비트 값을 2로 나누기 [PIC 마이크로 컨트롤러]
감사합니다.
16 비트 값이 하이 바이트 및 로우 바이트로 (그림 마이크로 컨트롤러에서) 저장되는 경우 어떻게 2로 나누는가? 어떻게 16 비트 숫자를 올바르게 회전시킬 수 있습니까?16 비트 값을 2로 나누기 [PIC 마이크로 컨트롤러]
감사합니다.
16 비트 수를 2로 나누는 것은 단일 비트로 오른쪽으로 시프트하는 것과 같습니다. *. 캐리 플래그를 지우고 캐리를 통해 상위 바이트를 오른쪽으로 회전 한 다음 캐리를 통해 하위 바이트를 오른쪽으로 회전합니다. 당신은 here에 대한 코드를 찾을 수 있습니다 홀수 번호는 2로 분할 할 때 0.5
가 잘립니다 : 물론
LSR16 MACRO VAR16
BCF STATUS, C ; Clear carry
RRF (VAR16)+1,F ; Rotate high byte right
RRF (VAR16),F ; Rotate low byte right
ENDM
대단히 고마워. 문제가 있으면 다시 시도하고 돌아올 것입니다. – user1852232
+1 홀수의 나누기를 언급합니다. – Jon
bitshift를 사용할 수 있습니까? – tjameson
죄송합니다. 방금 내 글을 수정했습니다. 네, 바로 회전 할 수 있지만 16 비트 숫자를 회전시키는 아이디어는 얻지 못합니다. – user1852232