久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

數據傳送指令

作者:佚名   來源:本站原創   點擊數:  更新時間:2007年09月17日   【字體:

表 3-2  數據傳送指令

操作碼

目標操作數

可選擇的源操作數

說         明

MOV

A

Rn

direct

@Ri

DPTR

 Rn;direct;@Ri;# data

 A;direct;# data

 A;Rn;direct;@Ri;# data

 A;direct;# data

 # data16

 內部傳送

 內部傳送

 內部傳送

 內部傳送

 數據指針賦值

PUSH

POP

隱含(SP)

direct

 direct

 隱含(SP)

 壓棧,只能用直接尋址

 退棧,只能用直接尋址

XCH

A

 Rn; direct; @Ri

 內部交換

XCHD

SWAP

A

A

 @Ri

 隱含A

 只交換低四位

 A的高、低四位互換

MOVX

A

@Ri

@DPTR

 @Ri; @DPTR

 A

 A

  A與外部數據存儲器間傳送

MOVC

A

 @A+DPTR; @A+PC

  讀外部程序存儲器

MOV

C

bit

 bit

 C

  Cy與可尋址位間傳送

 

1.      數據傳送指令的一般性說明

ê                 指令的一般格式:  操作碼  目標操作數,源操作數

操作碼  說明操作的性質

操作內容一般為   (目標操作數)(源操作數)

ê                 8位操作數的形式有A、Rn、direct、@Ri、# data 等五種

16位操作數的形式有DPTR 與 # data16

1位操作數的形式有 C 與 bit

ê                 目標與源應同類型,且有規定的允許搭配,一般可逆。

A及direct可全搭配,@Ri、Rn不能相互搭配,# data只可作源.。

ê                 傳送指令一般不影響標志位。

直接改寫PSW的情況除外,改寫Acc影響P標志。

2.      內部數據傳送指令(MOV)

ê                 內部RAM、特殊功能寄存器(SFR)之間的數據傳送。

ê                 注意立即數 #XXH與直接地址XXH 的區別。

ê                 @Ri指針使用要點:①與循環配合,適用于連續數據區的操作。

②Ri應先賦確定值。i=0,1。

③是XCHD指令唯一的源操作數。

 

3.      外部數據傳送(MOVX)

ê                 以指針方式讀、寫外部數據存儲器或I/O端口。

ê                 @DPTR提供16位地址指針,可訪問總線擴展的整個64k空間。

ê                 @Ri只提供低8位地址指針,適用于256個地址的小規模總線擴展。

或者由P2口以I/O方式提供高8位(頁) 地址,采用頁訪問模式。例如:

MOV   P2,#30H     ;由P2口提供高8位地址30H

MOV   R0,#0        ;低8位地址為00H

MOVX  A,@R0       ;讀(3000H)單元

 

ê                 應用例:將內部30H~40H單元的內容送外部數據存儲器,從4000H單元開始存放。


MOV  R0,#30H

MOV  R2,#17

MOV  DPTR,#4000H

LOOP: MOV  A,@R0

MOVX  @DPTR,A

INC  R0

INC  DPTR

DJNZ  R2,LOOP

;設置(內部)源指針初值

;設置循環計數器初值

;設置(外部)目標指針初值

;循環入口,讀源數據

;寫目標數據

;源指針下移

;目標指針下移

;循環計數器減一,不為0則繼續循環


 

4.      讀外部程序存儲器(MOVC)

ê                 讀取外部程序存儲器中的數據,用于查表。

ê                 MOVC  A,@A+PC   ;(A)((A)+(PC)+1)

PC為本指令的地址,取指令后加一。

變址偏移量(A)是8位無符號數,因此查表的范圍在(PC)+1 ~ (PC)+255。

ê                 MOVC  A,@A+DPTR   ;(A)((A)+(DPTR))

DPTR是16位指針,因此查表的范圍為全64k空間。

ê                 應用例:查Y(x)函數表。

3000H  MOV A,#表元素序號

3002H  ADD A,#表頭偏移量

3004H  MOVC A, @A+PC

¼¼

       ORG 30A0H

TABLE: DB 17,22,34,58,82,103

表頭偏移量=表頭地址-(MOVC指令地址+1)

 轉載須保留地址:http://www.zg4o1577.cn/mcu/280.html

5.      棧操作數據傳送指令(PUSH / POP)

ê                 堆棧在內部RAM區。

ê                 PUSH和POP的對象可以是內部RAM單元或SFR。

ê                 尋址方式只能用direct。例如,

PUSH 30H ;(SP)(SP)+1,((SP))(30H)

POP DPH  ;(DPH)((SP)),(SP)(SP)-1

 

6.       交換(XCH / XCHD /SWAP)

ê                 XCH 字節交換:A與內部RAM單元或SFR交換。例如

XCH A,R2  ;(A)«(R2)

ê                 XCHD 半字節交換:A與內部RAM單元進行低四位交換,只能用寄存器間址@Ri。例如

XCHD A,@R1    ;(A)D0- D 3 «((R1))D0- D 3

ê                 SWAP A  ;(A)D0- D 3  «(A)D4- D 7

ê                 應用例:拆字,將壓縮BCD碼擴展為單字節BCD碼。


《堆棧數據傳送指令》

MOV  R0, #30H  ; 設立指針

MOV  A, #0     (A)=0

XCHD  A, @R0   (A)=0BH

MOV  R4, A    ;(R4)=0BH

XCH  A,30H    ;(A)=30H

SWAP  A       ;(A)=03H

MOV  R3,A     ;(R3)=03H

 

關閉窗口

相關文章

主站蜘蛛池模板: 国产日产精品一区二区三区四区 | 一区二区三区国产 | 亚洲精品区 | 久久av网 | 国产精品免费一区二区三区 | 免费a级毛片在线播放 | 视频一区二区三区在线观看 | 成人黄色电影免费 | 酒色成人网 | 亚洲日本欧美 | 亚洲一视频 | 久久精品免费观看 | 日韩av一区二区在线观看 | 久久99深爱久久99精品 | 国产一区二区三区高清 | 国产久| 亚洲精品福利在线 | 午夜精品网站 | 天天干在线播放 | 天天插天天操 | 成人国内精品久久久久一区 | 色婷婷av久久久久久久 | 免费一二区 | 男人电影天堂 | 欧区一欧区二欧区三免费 | 欧美黄色片在线观看 | 亚洲v日韩v综合v精品v | 毛片1 | 亚洲精品视频播放 | 亚洲视频免费在线观看 | 美女毛片 | 欧美精品一区二区三区蜜桃视频 | 中文字幕亚洲精品 | 欧美成人手机在线 | 国产一区二区影院 | 欧美 日韩 亚洲91麻豆精品 | 国精产品一区一区三区免费完 | 国产高清视频 | 欧美在线a | 日韩精品久久久久 | 好好的日在线视频 |