??? 07/31/05 10:50 Read: times |
#98504 - why +1? Responding to: ???'s previous message |
hi,
Jon Ward said:
inc r7 inc r6 Of course, the loop label is branched to 1+r6:r7 times. Jon, I think this solution is enough. You should send it to Erik instead public here (= By the way, this solution does produce not +1 but exactly required number of itterations. Next test shows it: START: MOV R0,#0 MOV R1,#0 MOV R7,#LOW(value) MOV R6,#HIGH(value) CALL LOOP JMP START LOOP: INC R6 INC R7 JMP LOOP_B LOOP_A: INC R0 CJNE R0,#0,LOOP_B INC R1 LOOP_B: DJNZ R7,LOOP_A DJNZ R6,LOOP_A RETHere R1:R0 collect total number of itterations. You may test this code and see that after return from subroutine LOOP the registers will contain exactly the number which was loaded into R6:R7 before call it. Regards, Oleg |