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