User Guide
<%27
7UGT
U/CPWCN
80 +DUGZDUHDQG6RIWZDUH,PSOHPHQWDWLRQ([DPSOHV
([DPSOH7ZR
$VWULQJLQPHPRU\OLPLWHGWRDPD[LPXPOHQJWKRIFKDUDFWHUV
VWDUWLQJDWORFDWLRQ'$7$LVWREHPRYHGWRDQRWKHUPHPRU\ORFDWLRQ
VWDUWLQJDWORFDWLRQ%8))(5XQWLODQ$6&,,XVHGDVDVWULQJGHOLPLWRU
LVIRXQG7KLVRSHUDWLRQLVSHUIRUPHGDVIROORZV
LD HL, DATA ;STARTING ADDRESS OF DATA STRING
LD DE, BUFFER;STARTING ADDRESS OF TARGET BUFFER
LD BC, 132 ;MAXIMUM STRING LENGTH
LD A, ’$’ ;STRING DELIMITER CODE
LOOP:CP (HL) ;COMPARE MEMORY CONTENTS WITH
;DELIMITER
JR Z, END-$ ;GO TO END IF CHARACTERS EQUAL
LDI ;MOVE CHARACTER (HL) to (DE)
;INCREMENT HL AND DE, DECREMENT BC
JP PE, LOOP ;GO TO "LOOP" IF MORE CHARACTERS
END: ;OTHERWISE, FALL THROUGH
;NOTE: P/V FLAG IS USED
;TO INDICATE THAT REGISTER BC WAS
;DECREMENTED TO ZERO.
1LQHWHHQE\WHVDUHUHTXLUHGIRUWKLVRSHUDWLRQ
([DPSOH7KUHH
$GLJLWGHFLPDOQXPEHULVVKLIWHGDVGHSLFWHGLQWKH)LJXUH 7KLV
VKLIWLVSHUIRUPHGWRPHFKDQL]H%&'PXOWLSOLFDWLRQRUGLYLVLRQ7KH
GLJLWGHFLPDOQXPEHULVUHSUHVHQWHGLQSDFNHG%&'IRUPDWWZR%&'
GLJLWVE\WH7KHRSHUDWLRQLVSURJUDPPHGDVIROORZV
LD HL, DATA;ADDRESS OF FIRST BYTE
LD B, COUNT;SHIFT COUNT
XOR A ;CLEAR ACCUMULATOR
ROTAT:RLD ;ROTATE LEFT LOW ORDER DIGIT IN ACC
;WITH DIGITS IN (HL)
INC HL ;ADVANCE MEMORY POINTER.
DJNZ ROTAT-$ ;DECREMENT B AND GO TO ROTAT IF