51單片機數據傳送指令
數據傳送指令共有29條,數據傳送指令一般的操作是把源操作數傳送到目的操作數,指令執行完成后,源操作數不變,目的操作數等于源操作數。
如果要求在進行數據傳送時,目的操作數不丟失,則不能用直接傳送指令,而采用交換型的數據傳送指令,數據傳送指令不影響標志C,AC和OV,但可能會對奇偶標志P有影響。
以累加器A為目的操作數類指令(4條)
這4條指令的作用是把源操作數指向的內容送到累加器A。有直接、立即數、寄存器和寄存器間接尋址方式:
MOV A,data; (data)→(A) 直接單元地址中的內容送到累加器A
MOV A,#data; #data →(A) 立即數送到累加器A中
MOV A,Rn; ?。≧n)→(A) Rn中的內容送到累加器A中
MOV A,@Ri; ((Ri))→(A) Ri內容指向的地址單元中的內容送到累加器A
以寄存器Rn為目的操作數的指令(3條)
這3條指令的功能是把源操作數指定的內容送到所選定的工作寄存器Rn中。有直接、立即和寄存器尋址方式:
MOV Rn,data; ?。╠ata)→(Rn) 直接尋址單元中的內容送到寄存器Rn中
MOV Rn,#data; #data →(Rn) 立即數直接送到寄存器Rn中
MOV Rn,A; ?。ˋ)→(Rn) 累加器A中的內容送到寄存器Rn中
以直接地址為目的操作數的指令(5條)
這組指令的功能是把源操作數指定的內容送到由直接地址data所選定的片內RAM中。有直接、立即、寄存器和寄存器間接4種尋址方式:
MOV data,data; (data)→(data) 直接地址單元中的內容送到直接地址單元
MOV data,#data; #data→(data) 立即數送到直接地址單元
MOV data,A; (A)→(data) 累加器A中的內容送到直接地址單元
MOV data,Rn; (Rn)→(data) 寄存器Rn中的內容送到直接地址單元
MOV data,@Ri; ((Ri))→(data) 寄存器Ri中的內容指定的地址單元中數據送到直接地址單元
以間接地址為目的操作數的指令(3條)
這組指令的功能是把源操作數指定的內容送到以Ri中的內容為地址的片內RAM中。有直接、立即和寄存器3種尋址方式:
MOV @Ri,data; (data)→((Ri)) 直接地址單元中的內容送到以Ri中的內容為地址的RAM單元
MOV @Ri,#data; #data→((Ri)) 立即數送到以Ri中的內容為地址的RAM單元
MOV @Ri,A; (A)→((Ri)) 累加器A中的內容送到以Ri中的內容為地址的RAM單元
查表指令(2條)
這組指令的功能是對存放于程序存儲器中的數據表格進行查找傳送,使用變址尋址方式:
MOVC A,@A+DPTR;((A))+(DPTR)→(A) 表格地址單元中的內容送到累加器A中
MOVC A,@A+PC; ((PC))+1→(A),((A))+(PC)→(A) 表格地址單元中的內容送到累加器A中
累加器A與片外數據存儲器RAM傳送指令(4條)
這4條指令的作用是累加器A與片外RAM間的數據傳送。使用寄存器尋址方式:
MOVX @DPTR,A; (A)→((DPTR)) 累加器中的內容送到數據指針指向片外RAM地址中
MOVX A, @DPTR; ((DPTR))→(A) 數據指針指向片外RAM地址中的內容送到累加器A中
MOVX A, @Ri; ((Ri))→(A) 寄存器Ri指向片外RAM地址中的內容送到累加器A中
MOVX @Ri,A; (A)→((Ri)) 累加器中的內容送到寄存器Ri指向片外RAM地址中
堆棧操作類指令(2條)
這4類指令的作用是把直接尋址單元的內容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內容送到直接尋址單元中。
這類指令只有兩條,下述的第一條常 稱為入棧操作指令,第二條稱為出棧操作指令。
需要指出的是,單片機開機復位后,(SP)默認為07H,但一般都需要重新賦值,設置新的SP首址。入棧的第 一個數據必須存放于SP+1所指存儲單元,故實際的堆棧底為SP+1所指的存儲單元。
PUSH data; (SP)+1 →(SP),(data)→(SP) 堆棧指針首先加1,直接尋址單元中的數據送到堆棧指針SP所指的單元中
POP data; (SP)→(data),(SP)-1→(SP) 堆棧指針SP所指的單元數據送到直接尋址單元中,堆棧指針SP再進行減1操作
交換指令(5條)
這5條指令的功能是把累加器A中的內容與源操作數所指的數據相互交換。
XCH A,Rn; (A)←→(Rn) 累加器與工作寄存器Rn中的內容互換
XCH A,@Ri; (A)←→((Ri)) 累加器與工作寄存器Ri所指的存儲單元中的內容互換
XCH A,data; (A)←→(data) 累加器與直接地址單元中的內容互換
XCHD A,@Ri; (A3-0)←→((Ri)3-0) 累加器與工作寄存器Ri所指的存儲單元中的內容低半字節互換
SWAP A; (A3-0)←→(A7-4) 累加器中的內容高低半字節互換
16位數據傳送指令(1條)
這條指令的功能是把16位常數送入數據指針寄存器。
MOV DPTR,#data16;#dataH→(DPH) #dataL→(DPL) 16位常數的高8位送到DPH,低8位送到DPL
上一篇:單片機c51頭文件的解釋
下一篇:80C51的串行口
推薦閱讀最新更新時間:2025-06-07 23:41







設計資源 培訓 開發板 精華推薦
- 步進電機控制指令詳解
- 依利浦實驗室人工智能平臺為Ceva NeuPro-Nano NPU優化 推動實現更智能的邊緣設備
- Bourns 全新推出兩款屏蔽功率電感器系列 專為 DDR5 電源管理電路開發
- Bourns 推出新型電流變壓器產品,采用坡莫合金 T 型磁芯結構,具備高匝數比特性
- 羅克韋爾自動化推出 OptixEdge 高級邊緣網關,助力客戶釋放數據潛力
- 通用汽車斥資 40 億美元,擬將主要制造業遷回美國
- 是德科技助力蔚來驗證新一代 汽車無線系統
- 為敏感的器件打造超低噪聲電源
- Teledyne Space Imaging 發布通過航天級篩選的工業圖像傳感器
- 曝韓國電池供應商LG與奇瑞簽署合作協議:訂單規模達8GWh!