设一表格,表中数为:00H、11H、22H……FFH,将片内00H单元中的低4位放到片外0000H中(0000H中的高4位为0),高4位放到片外0001H中(0001H中的高4位为0),根据0000H中的数取出表中相应的值存到片内30H中;根据0001H中的数跳到相应的处理程序中,在处理程序中,把相应的位地址置1。
ORG 0000HSTART:MOV DPTR,#0000H; MOV A,#00H MOVX @DPTR,A INC DPTR MOVX @DPTR,A MOV DPTR,#00H;将片内00H中的值拆分放入片外相应位置 MOV R1,#00H MOV A,@R1 ANL A,#0FH MOVX @DPTR,A MOV A,@R1 ANL A,#0F0H RR A RR A RR A RR A INC DPTR MOVX @DPTR,A MOV DPTR,#0000H;相应值赋给30H MOVX A,@DPTR MOV DPTR,#TABLE;指向表格的首地址 MOVC A,@A+DPTR MOV 30H,A MOV DPTR,#0001H;散转 MOV 20H,#00H;置位前先将20H清零 MOVX A,@DPTR MOV R1,A;LJMP;A变为3倍 RL A ADD A,R1 MOV DPTR,#TAB JMP @A+DPTR TAB: LJMP PM0 LJMP PM1 LJMP PM2 LJMP PM3 LJMP PM4 LJMP PM5 LJMP PM6 LJMP PM7 LJMP PM8 LJMP PM9 LJMP PMA LJMP PMB LJMP PMC LJMP PMD LJMP PME LJMP PMF PM0:SETB 00H JMP AA PM1:SETB 01H JMP AA PM2:SETB 02H JMP AA PM3:SETB 03H JMP AA PM4:SETB 04H JMP AA PM5:SETB 05H JMP AA PM6:SETB 06H JMP AA PM7:SETB 07H JMP AA PM8:SETB 08H JMP AA PM9:SETB 09H JMP AA PMA:SETB 0AH JMP AA PMB:SETB 0BH JMP AA PMC:SETB 0CH JMP AA PMD:SETB 0DH JMP AA PME:SETB 0EH JMP AA PMF:SETB 0FH JMP AA TABLE:DB 00H,11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH AA:SJMP $ END