;data to be shifted out are in acc; returns data shifted in in acc
   clr   LATCH  ;latch the input data
   mov   r2,#8  ;prepare counter
loop:
   mov   c,MISO ;input data bit
   rrc   a      ;data are LSB first
   mov   MOSI,c ;output data bit
   clr   CLK    ;advance shift
   setb  CLK
   djnz  r2,loop
   ret