累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令(4條)舉例——mcs51單
累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令(4條)
這4條指令的作用是累加器A與片外RAM間的數(shù)據(jù)傳送。使用寄存器尋址方式:
MOVX @DPTR,A;(A)→((DPTR)) 累加器中的內(nèi)容送到數(shù)據(jù)指針指向片外RAM地址中
MOVX A, @DPTR;((DPTR))→(A) 數(shù)據(jù)指針指向片外RAM地址中的內(nèi)容送到累加器A中
MOVX A, @Ri;((Ri))→(A) 寄存器Ri指向片外RAM地址中的內(nèi)容送到累加器A中
MOVX @Ri,A;(A)→((Ri)) 累加器中的內(nèi)容送到寄存器Ri指向片外RAM地址中
說(shuō)明:
1、在89C51中,與外部存儲(chǔ)器RAM打交道的只可以是累加器A,所有需要送入外部RAM的數(shù)據(jù)必須要通過(guò)A送出去。而所有要讀入外部RAM中的數(shù)據(jù)也必需要通過(guò)A讀入。在此我們可以看出外部RAM的區(qū)別了。
內(nèi)部RAM間可以直接進(jìn)行數(shù)據(jù)傳遞,而外部則不行。比如,要將外部RAM中某單元(設(shè)為110H單元的數(shù)據(jù))送入另外一個(gè)單元(設(shè)為200H單元),也必須要先將110H單元中的內(nèi)容讀入A,然后再送入200H單元中去。
2、要讀寫外部的RAM,當(dāng)然也必須要先知道RAM的地址,在后兩條指令中,地址是被地址放在DPTR中的,而前兩條指令,由于Ri(即R0或R1)只是一個(gè)8位的寄存器,所以只能提供低8位地址,因?yàn)橛袝r(shí)擴(kuò)展的外部RAM的數(shù)量比較少,少于或等于256個(gè),就只需提供8位地址就足夠了。請(qǐng)大家再?gòu)?fù)習(xí)下我們前面《51單片機(jī)的尋址方式》這節(jié)課。
3、使用時(shí)應(yīng)當(dāng)首先將要讀或?qū)懙牡刂匪腿隓PTR或Ri中,然后再用讀寫命令。
例:將外部RAM中100H單元中的內(nèi)容送入外部RAM中200H單元中。
MOV DPTR,#0100H
MOVX A,@DPTR
MOV DPTR,#0200H
MOVX @DPTR,A