實驗三 查表、多分支(80C51單片機匯編語言編程) 作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 設(shè)一表格,表中數(shù)為:00H、11H、22H……FFH,將片內(nèi)00H單元中的低4位放到片外0000H中(0000H中的高4位為0),高4位放到片外0001H中(0001H中的高4位為0),根據(jù)0000H中的數(shù)取出表中相應(yīng)的值存到片內(nèi)30H中;根據(jù)0001H中的數(shù)跳到相應(yīng)的處理程序中,在處理程序中,把相應(yīng)的位地址置1。ORG 0000HSTART:MOV DPTR,#0000H; MOV A,#00H MOVX @DPTR,A INC DPTR MOVX @DPTR,A MOV DPTR,#00H;將片內(nèi)00H中的值拆分放入片外相應(yīng)位置 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;相應(yīng)值賦給30H MOVX A,@DPTR MOV DPTR,#TABLE;指向表格的首地址 MOVC A,@A+DPTR MOV 30H,A MOV DPTR,#0001H;散轉(zhuǎn) MOV 20H,#00H;置位前先將20H清零 MOVX A,@DPTR MOV R1,A;LJMP;A變?yōu)?倍 RL A ADD A,R1 MOV DPTR,#TAB JMP @A+DPTRTAB: 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
評論