单片机数据转换php,51单片机之数据转移指令MOV、MOVX、MOVC等
文章目錄
片內(nèi)RAM數(shù)據(jù)轉(zhuǎn)移指令 MOV
英文全稱: Move
MOV A, XXX
目的:將指定的內(nèi)容送入到累加器A中;
源操作數(shù):寄存器Rn,間接寄存Ri、直接地址direct與立即數(shù)#data
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOV A, R0
(Rn) -> A
√
1
MOV A, @Ri
((Ri)) -> A; i = 0, 1
√
1
MOV A, direct
(direct) -> A
√
2
MOV A, #data
data -> A
√
2
只有修改累加器中數(shù)據(jù)才會影響PSW標(biāo)志位
例 設(shè) R1 中內(nèi)容為50H,地址50H中內(nèi)容為60H
MOV A R1:表示將R1所存放的50H內(nèi)容移動到A中,(Rn) -> A,50H -> A;
MOV A @R1:表示R1所表示的50H地址中的60H內(nèi)容移動到A中,((R1)) = 60H -> A;
MOV A, 50H:表示將地址50H存放的60H內(nèi)容移動到A中,(50H) = 60H -> A;
MOV A, #50H:表示將50H這個(gè)數(shù)移動到A中,50H -> A。
MOV Rn, XXX
目的:把源操作數(shù)所指定的內(nèi)容送入當(dāng)前工作寄存器組中;
源操作數(shù):累加器A,直接地址direct與立即數(shù)data
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOV Rn, A
(A) -> Rn
1
MOV Rn, direct
(direct) -> Rn
2
MOV Rn, #data
data -> Rn
2
例 累加器A中內(nèi)容為50H, 地址為60H的空間內(nèi)容為61H
MOV R1, A:表示將A的內(nèi)容移動到寄存器R1中, (A) = 50H -> R1;
MOV R1, 60H:表示將60H的內(nèi)容移動到寄存器R1中,(60H) = 61H -> R1;
MOV R1, #60H:表示將60H這個(gè)數(shù)放在寄存器R1中,60H -> R1。
MOV direct, XXX
目的:把源操作數(shù)所指定的內(nèi)容送入由直接地址direct所指出的內(nèi)存單元
源操作數(shù):累加器A,寄存器Rn,直接地址direct1,間接地址@Ri與立即數(shù)#data
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOV direct, A
(A) -> direct
2
MOV direct, Rn
(Rn) -> direct
2
MOV direct1, direct2
(direc2t) -> direct1
3
MOV direct, @Ri
((Ri) )-> direct1
2
MOV direct, #data
data -> direct
3
例 設(shè)R1中內(nèi)容為為50H,50H中內(nèi)容為60H,累加器A中的內(nèi)容為40H
MOV 70H, A:表示為將A中內(nèi)容40H送到地址為70H中,(A) = 40H -> 70H;
MOV 70H, R1:表示為將R1中內(nèi)容50H送到地址為70H中,(R1) = 50H -> 70H;
MOV 70H, 50H:表示將地址為50H空間的內(nèi)容60H送到地址為70H中,(50) = 60H -> 70H;
MOV 70H, @R1:表示R1所表示的50H地址中的60H內(nèi)容送到地址為70H空間中,((R1)) = 60H -> 70H;
MOV 70H, #50H:表示將50H這個(gè)數(shù)送到地址為70H空間中,50H -> 70H。
MOV @Ri, XXX
目的:將源操作數(shù)的內(nèi)容送入間接寄存器中內(nèi)容指定的RAM單元
源操作數(shù):累加器A,直接地址direct,立即數(shù)#data
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOV @Ri, A
(A) -> (Ri)
1
MOV @Ri, direct
(direct) -> (Ri)
2
MOV @Ri, #data
data -> (Ri)
2
例 累加器A中內(nèi)容為50H, 地址為60H的空間內(nèi)容為61H,R1的內(nèi)容為70H
MOV @R1, A:表示將A的內(nèi)容送入到R1中的內(nèi)容指定的RAM單元, (A) = 50H -> (R1) = 70H即70H單元的內(nèi)容為50H;
MOV @R1, 60H:表示將60H的內(nèi)容送入到R1中的內(nèi)容指定的RAM單元,(60H) = 61H -> (R1) = 70H即70H單元的內(nèi)容為61H;
MOV @R1, #60H:表示將60H這個(gè)數(shù)送入到R1中的內(nèi)容指定的RAM單元,60H -> (R1) = 70H即70H單元的內(nèi)容為60H。
MOV DPTR XXX
目的:將16位源操作數(shù)送入16位數(shù)據(jù)指針
源操作數(shù):16位操作數(shù),分別對其高8位DPH、低8位DPL傳送數(shù)值
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOV DPTR, #data16
dataH -> DPH,dataL -> DPL
3
例 對DPTR送入08D0H內(nèi)容
MOV DPTR, #08D0H;
或
MOV DPH, #08H,MOV DPL, #D0H;
片外RAM數(shù)據(jù)轉(zhuǎn)移指令 MOVX
英文全稱: Move?External?RAM
MOVX XXX XXX
目的:CPU對片外RAM或片外I/O外設(shè)芯片訪問
源操作數(shù):8為寄存器間接尋址、16為寄存器間接尋址
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOVX A, @Ri
((Ri)) -> A,且/RD = 0
√
1
MOVX A, @DPTR
((DPTR)) -> A,且/RD = 0
√
1
MOVX @Ri, A
(A) -> (Ri),且/WR = 0
1
MOVX @DPTR, A
(A) -> (DPTR),且/WR = 0
1
@DPTR:指16寄存器間接尋址,尋址范圍是片外RAM 0~64KB;
@Ri:指8位寄存器間接尋址,尋址范圍是片外RAM 0~255B,包括@R1和@R2兩種寄存器間接尋址;
例 R1寄存器指向片外RAM 10H,DPTR寄存器指向片外RAM 7000H,其中10H中內(nèi)容為20H,7000H中內(nèi)容為30H,累加器A中內(nèi)容為40H
MOVX A, @R1:表示將R1指向10H地址中的內(nèi)容送入累加器A,((R1)) = 20H -> A;
MOVX A, @DPTR:表示將DPTR指向7000H地址中的內(nèi)容送入累加器A,((DPTR)) = 30H -> A;
MOVX @R1, A:表示將A中的內(nèi)容送入R1指向10H地址中,(A) = 40H -> (R1) = 10H即10H中的內(nèi)容改為40H;
MOVX @DPTR, A:表示將A中的內(nèi)容送入DPTR指向7000H地址中,(A) = 40H -> (DPTR) = 7000H即7000H中的內(nèi)容改為40H。
執(zhí)行MOVX指令讓/DR和/WR(讀寫選通信號)自動有效,從而對片外RAM讀寫
MOVX A, @Ri只能訪問外部RAM 低8位00H~FFH 的256B,高8位由P2決定
片內(nèi)片外ROM數(shù)據(jù)轉(zhuǎn)移指令 MOVX
英文全稱: Move?Code
MOVC XXX XXX
目的:對程序存儲器(ROM)進(jìn)行尋址
源操作數(shù):寄存器間接尋址
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
MOVX A, @A + DPTR
((A) + (DPTR)) -> A
√
1
MOVX A, @A + PC
先(PC) + 1 -> PC,后((A) + (PC)) -> A
√
1
例 A中內(nèi)容為0DH,PC內(nèi)容為1003H,1010H的內(nèi)容為02H
MOVC A, @A + PC:表示為將PC內(nèi)容和累加器A相加形成的地址,取出該地址單元的內(nèi)容送入到累加器A中,((A) + (PC)) = 02H -> A;
例 A中內(nèi)容為10H,DPTR內(nèi)容為7000H,1010H的內(nèi)容為02H
MOVC A, @A + DPTR:表示為將DPTR內(nèi)容和累加器A相加形成的地址,取出該地址單元的內(nèi)容送入到累加器A中,((A) + (DPTR)) = 02H -> A;
MOVC指令只能讀取程序存儲器,不能寫程序存儲器
MOVC A, @A + PC指令查找后面的256B
MOVC A, @A + DPTR指令查找整個(gè)程序存儲器64KB
棧指令 PUSH POP
PUSH英文全稱: Push?onto?Stack
POP英文全稱: Pop from Stack
PUSH direct
目的:直接地址尋址的單元內(nèi)容壓入當(dāng)前SP堆棧中
源操作數(shù):直接地址direct
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
PUSH direct
先(SP) + 1 -> (SP),后(direct) -> (SP)
2
SP先向下移動一個(gè)單元(加一),在將direct中內(nèi)容送入SP中
POP direct
目的:將堆棧頂?shù)膬?nèi)容送入直接地址尋址的單元
源操作數(shù):堆棧頂內(nèi)容
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
POP direct
先(SP) -> (direct),后(SP) - 1 -> (SP)
2
先將SP指向的堆棧中數(shù)據(jù)送入直接地址direct,在SP向上移動一個(gè)單元(SP減一)
字節(jié)交換指令 XCH XCHD
XCH英文全稱: Exchange
XCHD英文全稱: Exchange low-order Digit
XCH XXX, XXX
目的:交換源操作數(shù)和累加器A的內(nèi)容
源操作數(shù):寄存器Rn,直接地址direct,間接地址@Ri
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
XCH A, Rn
(A) ->
√
1
XCH A, direct
(A) ->
√
2
XCH A, @Ri
(A) ->
√
1
例 A中內(nèi)容為10H,20H的內(nèi)容為30H,30H的內(nèi)容為40H,R1的內(nèi)容為20H
XCH A,R1:表示為交換A與R1中的內(nèi)容,A = (R1) = 20H,R1 = (A) = 10H;
XCH A,20H:表示為交換A與20H中的內(nèi)容,A = (20H) = 30H,20H = (A) = 10H;
XCH A,@R1:表示為交換A與R1表示的地址空間的內(nèi)容,A = ((R1)) = 40H,30H = (A) = 10H;
XCHD A, @Ri
目的:交換累加器A中低4位與Ri間接尋址的單元內(nèi)容低4位,高4位不變
源操作數(shù):Ri間接尋址的單元內(nèi)容的低4位
助記符
功能
對標(biāo)志位影響
字節(jié)數(shù)
P
OV
AC
CY
XCHD A, @Ri
(A*) ->
√
1
注:A*是指:A0123;
注:Ri*是指:Ri0123;
標(biāo)簽:R1,50H,51,direct,MOV,內(nèi)容,MOVC,Ri
來源: https://blog.csdn.net/jianming21/article/details/90454214
總結(jié)
以上是生活随笔為你收集整理的单片机数据转换php,51单片机之数据转移指令MOV、MOVX、MOVC等的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php安装solr扩展,PHP扩展模块
- 下一篇: php word转pdf linux,L