12 20
INC R1 MOV A, R7 MOV R6,A LOOP1: MOVX A, @R0 ; ;
MOV B, A
;
MOVX A, @R1 ; CJNE A, B, NEXT; 相邻两数比较, SJMP NOCHA ; 相等不交换
12
21
NEXT: JC NOCHA ; Cy =1, 则前者大于后者,
分地址单元作为工作单元 , 存放程序执行的中间值或执行结
果, 工作单元清零工作常常放在程序的初始化部分中。
设有50个工作单元, 其首址为外部存储器8000H单元, 则 其工作单元清零程序如下:
12
10
CLEAR: CLR A
MOV DPTR, #8000H ; 工作单元首址送指针
MOV R2, #50 ; CLEAR: CLR A
CLEAR1: MOVX @DPTR, A
INC DPTR ;
MOV DPTR,#8000H
#50+1 MOV R2,#50
CLR2: DJNZ RET R2,CLR1
DJNZ R2, CLEAR1;
RET
CLR1: MOVX @DPTR,A INC DPTR
SJMP
12
CLR2
11
例 6
设在内部 RAM 的 BLOCK 单元开始处有长度为
PKEY0:
PKEY0(H) PKEY0(L)
PKEY1(H)
PKEY1(L) PKEY2(H) PKEY2(L) PKEY3(H)
PKEY3(L)
...... PKEYN-1(H) PKEYN-1(L)
... ...
TAB: DW
12
PKEY0, PKEY1, ....