程序如下:
ORG 60H
TAB:
DB 01H,02H,03H,04H,05H,06H,07H
TAB1:
DB 00H,00H,00H,00H,00H,00H,00H
ORG 00H
START:
MOV DPTR,#TAB
MOV R7,#0
LOOP:
MOV A,R7
MOVC A,@A+DPTR
MOV R2,A
MOV DPTR,#TAB1
MOV A,R7
ADD A,DPL
;在这里,我想把数组TAB的值,一个一个复制到数组TAB1
MOV DPL,A
MOV A,R2
;数据一个一个地以间址的方式,存回到TAB1中
MOVX @DPTR,A
INC R7
CJNE R7,#8,LOOP
MOV R7,#0
;在这里,我想验证一下数组TAB的数据有没有复制到TAB1来,但是我监视R1的输出结果,表明的确没有将TAB的数据复制到TAB1来。
LOOP1:
MOV A,R7
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV R1,A
INC R7
CJNE R7,#8,LOOP1
END
另外,在我发现复制不成功的情况下,我修改了一下程序,程序如下:
ORG 60H
TAB:
DB 01H,02H,03H,04H,05H,06H,07H
TAB1:
DB 00H,00H,00H,00H,00H,00H,00H
ORG 00H
START:
MOV DPTR,#TAB
MOV R7,#0
LOOP:
MOV A,R7
MOVC A,@A+DPTR
MOV R2,A
MOV DPTR,#TAB1
MOV A,R7
ADD A,DPL
;因为TAB1的首地址是67H,所以DPTR其实低8位能够表示
MOV DPL,A
;将偏移地址送到R0,做一次间址寻址,将TAB中查表获得的数据送到R0间址的地址中去
MOV R0,DPL
MOV A,R2
MOV @R0,A
INC R7
CJNE R7,#8,LOOP
MOV R7,#0
LOOP1:
MOV A,R7
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV R1,A
INC R7
CJNE R7,#8,LOOP1
END
遗憾,结果TAB1仍然全部都是0,我不明白为什么了!
谢谢åçï¼ææ³é®ä¸ä¸ï¼å¨ç¬¬äºæ®µç¨åºä¸ï¼æ使ç¨äºMOV @R0,Aæ¥åä¸æ¬¡é´åï¼ä½æ¯ä¹ä¸è¡ï¼åå å¨åªå¿å¢ï¼@r0æ¯ROMéé¢çå°åå§
追ç@r0æ¯ROMéé¢çå°åå§
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
çæ¥ï¼æ¥¼ä¸»è¿æ¯ä¸æ¸
æ¥ï¼51åçæºåå¨ç©ºé´çåç±»ã
@r0ï¼æ°¸è¿ä¸è½ï¼åROMï¼æä»»ä½çèç³»ã
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
楼主ç第ä¸æ¥ï¼
æ¯ä» ROM ä¸ç TAB 读åºæ°æ®ï¼ä¸ä¸ªä¸ä¸ªå¤å¶å°æ°ç»TAB1ã
é£ä¹ï¼TAB1 æ¯ä»ä¹å°æ¹ï¼
ä½ å®ä¹ç TAB1ï¼è¿æ¯ ROMã
ROMï¼ä½ è½åå
¥åï¼
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
楼主ç第äºæ¥ï¼
......ä¸ä¸ªä¸ä¸ªå¤å¶å°æ°ç»TAB1ã
MOVX @DPTR,A
ä½ ç¨çè¿æ¡æ令ï¼æ¯ææ°æ®åå
¥å°çå¤RAMäº
çå¤RAMï¼ï¼ï¼ï¼
è¿éï¼å¹¶ä¸æ¯ ROM ç TAB1ã
åå
¥çå¤RAMï¼ç论ä¸æç«ï¼
å®é
ä¸ï¼è¦æ±ï¼ä½ å¿
é¡»æå¤æ¥çåå¨å¨è¯çã
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
楼主ç第ä¸æ¥ï¼
éªè¯æ°ç»TABçæ°æ®æ没æå¤å¶å°TAB1æ¥ï¼
MOV DPTR,#TAB1
MOVC A,@A+DPTRï¼ï¼ä»ROMä¸è¯»åº
ä½ è¿æ¯ä» ROM ç TAB1 读åºã
ROM ç TAB1ï¼ä½ ä¹ä¸å¯è½åå
¥æ°æ®ï¼ä½ 读çä»ä¹å¢ï¼
å¦æè¦å®ç°æ°ç»çå¤å¶ï¼åºè¯¥æä¹åTAB1æè½å¤å¶å¾è¿å»å¢ï¼
追çåºè¯¥æä¹åTAB1æè½å¤å¶å¾è¿å»å¢ï¼
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
ä½ çTAB1ï¼æ¯å®ä¹å¨ROMä¹ä¸ã
ROMï¼æ¯åªè¯»çææã
å¨ç¨åºè¿è¡æé´ï¼è¯å®ï¼æ¯åä¸è¿å»çã
ä½ çæ³æ³ï¼ä»ä¸å¼å§ï¼å°±æ¯é误çã
ï¼ï¼ï¼ï¼
ä½ å¯ä»¥åå°ãçå¤RAMãæãçå
RAMãã
åå°è¿ä¸¤é¨ååï¼å读åºæ¶ï¼å°±åºè¯¥ä»è¿ä¸¤é¨åéï¼è¯»åºã
èä¸åºè¯¥å»è¯»åº TAB1ã
ï¼ï¼ï¼ï¼
ä½ åæ¥çç¨åºï¼éªè¯æ¶ï¼æ¯ä» ROM ç TAB1 读åºã
ROM ä¸ç TAB1ï¼ä½ ä¹ä¸å¯è½åå
¥æ°æ®ï¼ä½ 读çä»ä¹å¢ï¼
ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼
ä½ åºè¯¥è®¤ççä¸ä¸ï¼
51åçæºåå¨ç©ºé´çåç±»ãç¹ç¹ã读åæ¹æ³ççã