Для PIC'а это выглядит так:
<CODE> ;*************************************************************** ; Routine: reverse8bit ; Инверсия байта ; Input X = abcdefgh , Output X = hgfedcba ; Written by Dmitry A. Kiryashov 2000 ; 12 clocks/words ; (!) Переменная BUFINT не должна использоваться вне прерывания ;*************************************************************** reverse8bit: SWAPF BUFINT, w ;efghabcd XORWF BUFINT, w ;efghabcd ;abcdefgh ANDLW 0x66 ;.fg..bc. ;.bc..fg. XORWF BUFINT, f ;afgdebch RRF BUFINT, w RRF BUFINT, f ;hafgdebc ANDLW 0x55 ;.a.g.e.c ADDWF BUFINT, f ;h.f.d.b. ;a.g.e.c. RRF BUFINT, f ;.h.f.d.b ;.a.g.e.c ADDWF BUFINT, f ;ahgfedcb RLF BUFINT, w RLF BUFINT, w ; Результат в аккумуляторе RETURN ;*************************************************************** </CODE>
|