當(dāng)前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)開關(guān) > DIP開關(guān)
發(fā)布日期:2022-04-17 點擊率:76
一、傳送類指令
(1)片內(nèi)數(shù)據(jù)傳送指令 (16條)
此類指令參入的源操作數(shù)和目的操作數(shù)有 #data/A/Rn/@Ri/direct 五個,其不同組合,共有 15 條指令
(2)片外數(shù)據(jù)傳送指令 (4條)
當(dāng)你想把一個數(shù)送到單片機外部擴展 RAM 的某個單元或外部擴展 I/O 口某個端口,或者你想從該 單元、端口將數(shù)據(jù)取回到單片機內(nèi)部的時候,就要用到片外數(shù)據(jù)傳送指令。
MOVX A , @Ri ; A ← ((Ri)) 片外
MOVX @Ri , A ; (Ri) 片外← A
MOVX A , @DPTR ; A ← ((DPTR)) 片外
MOVX @DPTR , A ; (DPTR) 片外← A
單片機與外部數(shù)據(jù)存儲器數(shù)據(jù)傳送采用兩種尋址方式,這兩種尋址形式都是間接尋址。一種是單字節(jié)尋址 @Ri ,一種是雙字節(jié)尋址 @DPTR ,另一個操作數(shù)是 A . 共有 4 條指令。
(3)數(shù)據(jù)交換指令(5條)
?、?指令: XCH A ,〈 byte 〉
功能:交換累加器與字節(jié)變量中的數(shù)據(jù)。
XCH 指令把指定字節(jié)的內(nèi)容裝入累加器 A 中,同時把累加器中原來的內(nèi)容寫入指定的字節(jié)中。源操作數(shù)有 Rn/direct/@Ri, 目的操作數(shù)是 A, 共三條指令。
例 2.5 設(shè) RO 寄存器內(nèi)容為 20H ,累加器 A 內(nèi)容為 3FH ,內(nèi)部 RAM 的 20H 單元內(nèi)容為
75H ,若執(zhí)行指令: XCH A , @RO 則結(jié)果為:( 20 ) =3FH ,( A ) =75H
?、?指令: XCHD A, @Ri
功能:低半字節(jié)數(shù)據(jù)交換,執(zhí)行操作( A3-0 )←→(( Ri ) 3-0 )
說明:累加器 A 中的低 4 位與由指定的寄存器間接尋址的內(nèi)部 RAM 單元的低 4 位數(shù)據(jù)進行交換。該指令不影響各寄存器的高 4 位,也不影響標(biāo)志位。
例 設(shè) RO 內(nèi)容為 20H ,累加器內(nèi)容為 36H ,內(nèi)部 RAM 的 20H 單元內(nèi)容為 75H ,若執(zhí)行指令 XCHD A , @RO
其結(jié)果為 ( 20H ) =0111011=76H
( A ) =00110101B=35H
?、?指令: SWAP A
A 的高四位和其低四位交換,
如 : 當(dāng) A 內(nèi)容為 36H 時執(zhí)行 SWAP A 后 A 為 63H
(4)堆棧指令
?、?指令 PUSH direct 功能:把程序的中間數(shù)據(jù)送入堆棧,稱為進棧。
說明:首先棧指針自動加 1 ,執(zhí)行( SP )←( SP ) +1 將棧指針移向堆棧中的無數(shù) 據(jù)字節(jié),然后將直接地址( direct )單元的內(nèi)容送入 SP 所指向的棧單元中,執(zhí)行( SP )←( direct ),不影響標(biāo)志位。
例 設(shè)堆棧指針為 09H ,數(shù)據(jù)指針內(nèi)容為 0123H ,試分析下列指令的執(zhí)行結(jié)果。
PUSH DPL
PUSH DPH
執(zhí)行結(jié)果為:( 0AH ) =23H ,
( 0BH ) =01H ,( SP ) =0BH
?、?指令: POP direct 功能:把堆棧中的中間數(shù)據(jù)送入目的字節(jié),稱為出棧。
說明:讀出由棧指針尋址的內(nèi)部 RAM 單元內(nèi)容。送到指定的直接尋址的字節(jié)單元,然后棧指針自動減 1 ,即執(zhí)行操作:
( direct )← ((SP)),(SP) ← (SP)-1; 指令執(zhí)行不影響標(biāo)志位。
例 設(shè)( SP ) =32H ,內(nèi)部 RAM 的 31H ,32H 單元中的內(nèi)容分別為 23H , 01H ,試分析下列指令的執(zhí)行結(jié)果。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV