www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

51單片機(jī)指令系統(tǒng):數(shù)據(jù)傳送(5)

作者:佚名    文章來源:網(wǎng)上收集    點(diǎn)擊數(shù):    更新時(shí)間:2008/11/4
第二十三課:數(shù)據(jù)傳送類指令分析
數(shù)據(jù)傳送類指令的通用格式是:

MOV  <目的操作數(shù)>,<源操作數(shù)>

源操作數(shù)可以是:累加器A、通用寄存器Rn(n=0-7)、直接地址direct、間接地址和立即數(shù);

目的操作數(shù)可以是:累加器A、通用寄存器Rn(n=0-7)、直接地址direct和間接地址;

數(shù)據(jù)傳送指令共有29條,數(shù)據(jù)傳送指令一般的操作是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行完成后,源操作數(shù)不變,目的操作數(shù)等于源操作數(shù)。如果要求在進(jìn)行數(shù)據(jù)傳送時(shí),目的操作數(shù)不丟失,則不能用直接傳送指令,而采用交換型的數(shù)據(jù)傳送指令,數(shù)據(jù)傳送指令不影響標(biāo)志C,AC和OV,但可能會(huì)對(duì)奇偶標(biāo)志P有影響。

[1]. 以累加器A為目的操作數(shù)類指令(4條)
    這4條指令的作用是把源操作數(shù)指向的內(nèi)容送到累加器A。有直接、立即數(shù)、寄存器和寄存器間接尋址方式:

MOV  A,direct     ;(data)→(A) 直接單元地址中的內(nèi)容送到累加器A,direct是直接地址
MOV  A,#data    ;#data→(A) 立即數(shù)送到累加器A中
MOV  A,Rn      ;(Rn)→(A) Rn中的內(nèi)容送到累加器A中,Rn=R1-R7
MOV  A,@Ri     ;((Ri))→(A) Ri內(nèi)容指向的地址單元中的內(nèi)容送到累加器A,Ri=R0或R1

下面舉個(gè)例子跟大家說明:
MOV  A,R1 ;將工作寄存器R1中的值送入到累加器A中,R1中的值保持不變。
MOV  A,50H;將內(nèi)存50H單元中的值送入到累加器A中,50H單元中的值保持不變。
MOV  A,@R1;先看R1中是什么值,把這個(gè)值當(dāng)做地址,并將這個(gè)地址單元中的值送入累加器A中,前面我們已學(xué)過,這是寄存器間接尋址方式。

[2]. 以寄存器Rn為目的操作數(shù)的指令(3條)
    這3條指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Rn中,源操作數(shù)不變。有直接、立即和寄存器尋址方式:

MOV  Rn,data     ;(data)→(Rn) 直接尋址單元中的內(nèi)容送到寄存器Rn中
MOV  Rn,#data    ;#data→(Rn) 立即數(shù)直接送到寄存器Rn中
MOV  Rn,A        ;(A)→(Rn) 累加器A中的內(nèi)容送到寄存器Rn中

[3]. 以直接地址為目的操作數(shù)的指令(5條)
    這組指令的功能是把源操作數(shù)指定的內(nèi)容送到由直接地址data所選定的片內(nèi)RAM中。有直接、立即、寄存器和寄存器間接4種尋址方式:

MOV  data,data   ;(data)→(data) 直接地址單元中的內(nèi)容送到直接地址單元
MOV  data,#data ;#data→(data) 立即數(shù)送到直接地址單元
MOV  data,A     ;(A)→(data) 累加器A中的內(nèi)容送到直接地址單元
MOV  data,Rn    ;(Rn)→(data) 寄存器Rn中的內(nèi)容送到直接地址單元
MOV  data,@Ri   ;((Ri))→(data) 寄存器Ri中的內(nèi)容指定的地址單元中數(shù)據(jù)送到直接地址單元

試比較一下MOV  50H,#60H與MOV  50H,60H的區(qū)別

[4]. 以間接地址為目的操作數(shù)的指令(3條)
    這組指令的功能是把源操作數(shù)指定的內(nèi)容送到以Ri中的內(nèi)容為地址的片內(nèi)RAM中。有直接、立即和寄存器3種尋址方式:

MOV  @Ri,data    ;(data)→((Ri)) 直接地址單元中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元
MOV  @Ri,#data   ;#data→((Ri)) 立即數(shù)送到以Ri中的內(nèi)容為地址的RAM單元
MOV  @Ri,A       ;(A)→((Ri)) 累加器A中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元

試比較一下MOV R0,20H與MOV  @R0,20H的區(qū)別

[5]. 查表指令(2條)
    這組指令的功能是對(duì)存放于程序存儲(chǔ)器中的數(shù)據(jù)表格進(jìn)行查找傳送,使用變址尋址方式:

MOVC  A,@A+DPTR   ;((A))+(DPTR)→(A) 表格地址單元中的內(nèi)容送到累加器A中
MOVC  A,@A+PC     ;((PC))+1→(A),((A))+(PC)→(A) 表格地址單元中的內(nèi)容送到累加器A中

本指令是將ROM的數(shù)據(jù)送入A中,本指令也被稱為查表指令,常用此指令來查一個(gè)已做好在ROM中的表格。
說明:
1、此條指令引出了一個(gè)特殊的尋址方式,即變址尋址,在上節(jié)課時(shí)我們已進(jìn)行過講解,本指令是要在ROM的一個(gè)地址單元中找出數(shù)據(jù),顯然必須知道這個(gè)單元的地址,這個(gè)單元的地址是這樣確定的:在執(zhí)行本指令立腳點(diǎn)DPTR中有一個(gè)數(shù),A中有一個(gè)數(shù),執(zhí)行指令時(shí),將A和DPTR中的數(shù)加起來,就成為要查找單元的地址。
2、查找到的結(jié)果被放在A中,因此,本條指令執(zhí)行前后,A中的值不一定相同。
例:有一個(gè)數(shù)在R0中,要求用查表的方法確定它的平方值(此數(shù)的取值范圍是0-5)
      MOV  DPTR,#TABLE
      MOV  A,R0
      MOVC A,@A+DPTR
TABLE:DB   0,1,4,9,16,25
設(shè)R0中的值為2,送入A中,而DPTR中的值則為TABLE,則最終確定的ROM單元的地址就是TABLE+2,也就是到這個(gè)單元中去取數(shù),取到的是4,顯然它正是2的平方。其它數(shù)據(jù)也可以類推
標(biāo)號(hào)的真實(shí)含義:從這個(gè)地方也可以看到另一個(gè)問題,我們使用了標(biāo)號(hào)來替代具體的單元地址。事實(shí)上,標(biāo)號(hào)的真實(shí)含義就是地址數(shù)值。在這里它代表了0,1,4,9,16,25這幾個(gè)數(shù)據(jù)在ROM中存放的起點(diǎn)位置。我們經(jīng)常看到的指令,如LCALL DELAY指令中,DELAY則代表了以DELAY為標(biāo)號(hào)的那段程序在ROM中存放的起始地址。事實(shí)上,CPU正是通過這個(gè)地址才找到這段程序的。
可以通過以下的例子再來看看標(biāo)號(hào)的含義:
MOV  DPTR,#100H
MOV  A,R0
MOVC A,@A+DPTR
.....
ORG  0100H
DB   0,1,4,9,16,25
如果R0中的值為2,則最終地址為100H+2為102H,到102H單元中找到的是4。這樣應(yīng)看明白了吧?
那么為什么不這樣寫程序,要用標(biāo)號(hào)呢?不是增加疑惑嗎?
如果這樣寫程序的話,在寫程序時(shí),我們就必須確定這張表格在ROM中的具體的位置,如果寫完程序后,又想在這段程序前插入一段程序,那么這張表格的位置就又要改變了,要改為ORG  100H這句話了,我們是經(jīng)常需要修改程序的,那么麻煩,所以就用標(biāo)號(hào)來替代,只要一編譯程序,位置就自動(dòng)發(fā)生變化,我們把這個(gè)麻煩的事交給計(jì)算機(jī)去做了。

[6]. 累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令(4條)
    這4條指令的作用是累加器A與片外RAM間的數(shù)據(jù)傳送。使用寄存器尋址方式:

MOVX  @DPTR,A    ;(A)→((DPTR)) 累加器中的內(nèi)容送到數(shù)據(jù)指針指向片外RAM地址中
MOVX  A, @DPTR   ;((DPTR))→(A) 數(shù)據(jù)指針指向片外RAM地址中的內(nèi)容送到累加器A中
MOVX  A, @Ri     ;((Ri))→(A) 寄存器Ri指向片外RAM地址中的內(nèi)容送到累加器A中
MOVX  @Ri,A      ;(A)→((Ri)) 累加器中的內(nèi)容送到寄存器Ri指向片外RAM地址中

說明:
1、在89C51中,與外部存儲(chǔ)器RAM打交道的只可以是累加器A,所有需要送入外部RAM的數(shù)據(jù)必須要通過A送出去。而所有要讀入外部RAM中的數(shù)據(jù)也必需要通過A讀入。在此我們可以看出外部RAM的區(qū)別了。
內(nèi)部RAM間可以直接進(jìn)行數(shù)據(jù)傳遞,而外部則不行。比如,要將外部RAM中某單元(設(shè)為110H單元的數(shù)據(jù))送入另外一個(gè)單元(設(shè)為200H單元),也必須要先將110H單元中的內(nèi)容讀入A,然后再送入200H單元中去。

2、要讀寫外部的RAM,當(dāng)然也必須要先知道RAM的地址,在后兩條指令中,地址是被地址放在DPTR中的,而前兩條指令,由于Ri(即R0或R1)只是一個(gè)8位的寄存器,所以只能提供低8位地址,因?yàn)橛袝r(shí)擴(kuò)展的外部RAM的數(shù)量比較少,少于或等于256個(gè),就只需提供8位地址就足夠了。請(qǐng)大家再?gòu)?fù)習(xí)下我們前面《51單片機(jī)的尋址方式》這節(jié)課。

3、使用時(shí)應(yīng)當(dāng)首先將要讀或?qū)懙牡刂匪腿隓PTR或Ri中,然后再用讀寫命令。
例:將外部RAM中100H單元中的內(nèi)容送入外部RAM中200H單元中。
    MOV  DPTR,#0100H
    MOVX A,@DPTR
    MOV  DPTR,#0200H
    MOVX @DPTR,A


[7]. 堆棧操作類指令(2條)
    這4類指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內(nèi)容送到直接尋址單元中。這類指令只有兩條,下述的第一條常稱為入棧操作指令,第二條稱為出棧操作指令。需要指出的是,單片機(jī)開機(jī)復(fù)位后,(SP)默認(rèn)為07H,但一般都需要重新賦值,設(shè)置新的SP首址。入棧的第一個(gè)數(shù)據(jù)必須存放于SP+1所指存儲(chǔ)單元,故實(shí)際的堆棧底為SP+1所指的存儲(chǔ)單元。

PUSH  data   ;(SP)+1→(SP),(data)→(SP) 堆棧指針首先加1,直接尋址單元中的數(shù)據(jù)送到堆棧指針SP所指的單元中
POP  data    ;(SP)→(data)(SP)-1→(SP), 堆棧指針SP所指的單元數(shù)據(jù)送到直接尋址單元中,堆棧指針SP再進(jìn)行減1操作

第一條指令稱為推入,就是將direct中的內(nèi)容送入堆棧中,第二條指令稱為彈出,就是將堆棧中的內(nèi)容送回到direct中,推入指令的執(zhí)行過程是:首先將P中的值加1,然后把SP中的值當(dāng)做地址,將direct中的值送入以SP中的值為地址的RAM單元中去。
例:
MOV  SP,#5FH
MOV  A,#100
MOV  B,#20
PUSH ACC
PUSH B
執(zhí)行第一條PUSH ACC指令是這樣的:將SP中的值加1,即變?yōu)?0H,然后將A中的值送到60H單元中,因此執(zhí)行完本條指令后,內(nèi)存60H單元中的值就是100,同樣執(zhí)行PUSH B時(shí),是將SP+1,即變?yōu)?1H,然后將B中的值送入到61H單元中,即執(zhí)行完本條指令后61H單元中的值變?yōu)?0。
POP指令的執(zhí)行也是這樣的,首先將SP中的值做為地址,并將此地址中的數(shù)送到POP指令的那個(gè)direct中,然后SP減1。
接上例:
POP  B
POP  ACC
則執(zhí)行過程是:將SP中的值(現(xiàn)在是61H)作為地址,取61H單元中的數(shù)值(現(xiàn)在是20),送到B中,所以執(zhí)行完本條指令后B中的值是20,然后SP減1,因此本條指令執(zhí)行完后,SP的值變?yōu)?0H,然后搪行POP ACC,將SP中的值(60H)作為地址,從該地址中取數(shù)(現(xiàn)在是100),并送到ACC中,所以執(zhí)行完本條指令后,ACC中的值是100。
這有什么意義呢?ACC中的值本來就是100,B中的值本來就是20,是的,在本例中,的確沒有意義,但在實(shí)際工作中,則在PUSH B后往事要執(zhí)行其它的指令,而且這些指令會(huì)把A中的值,B中的值改掉,所以在程序結(jié)束,如果我們要把A和B中的值恢復(fù)原值,那么這些指令就沒有意義了。
還有一個(gè)問題,如果我們不用堆棧,比如說在PUSH  ACC指令處用MOV 60H,A在PUSH  B處用指令MOV  61H,B,然后用MOV  A,60H,MOV  B,61H來替代兩處POP指令,不也是一樣嗎?是的,從結(jié)果上看是一樣的,但從過程看是不一樣的,PUSH和POP指令都是單字節(jié),單周期指令,而MOV指令則是雙字節(jié),雙周期指令,更何況,堆棧的作用不止于此,所以一般的計(jì)算機(jī)上都設(shè)有堆棧,而我們?cè)诰帉懽映绦颍枰4鏀?shù)據(jù)時(shí),通常不采用后面的方法,而是用堆棧的方法來實(shí)現(xiàn)。
例:寫出以下程序的運(yùn)行結(jié)果
MOV  30H,#12
MOV  31H,#23
PUSH 30H
PUSH 31H
POP  30H
POP  31H
結(jié)果是30H中的值變?yōu)?3,而31H中的值則變?yōu)?2。也就是兩者進(jìn)行了數(shù)據(jù)交換。從這個(gè)例子可以看出:使用堆棧時(shí),入棧的書寫順序和出棧的書寫順序必須相反,才能保證數(shù)據(jù)被送回原位,否則就出錯(cuò)了。
另外特別注意事項(xiàng):
進(jìn)行堆棧操作時(shí),我們不能:
PUSH  R0
PUSH  R1
而只能:
PUSH  00H
PUSH  01H
POP也是一樣。

[8]. 交換指令(5條)
    這5條指令的功能是把累加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。

XCH      A,Rn    ;(A)←→(Rn)累加器與工作寄存器Rn中的內(nèi)容互換
XCH      A,@Ri   ;(A)←→((Ri))累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容互換
XCH      A,data  ;(A)←→(data)累加器與直接地址單元中的內(nèi)容互換
XCHD   A,@Ri  ;(A3-0)←→((Ri)3-0)累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容低半字節(jié)互換
SWAP   A      ;(A3-0)←→(A7-4)累加器中的內(nèi)容高低半字節(jié)互換

[9]. 16位數(shù)據(jù)傳送指令(1條)
    這是89C51單片機(jī)唯一的一條16位立即數(shù)傳遞指令,其功能是將一個(gè)16位的立即數(shù)送入數(shù)據(jù)指針DPTR中去。其中高8位送入DPH,低8位送入DPL。

MOV  DPTR,#data16  ;#dataH→(DPH),#dataL→(DPL)16位常數(shù)的高8位送到DPH,低8位送到DPL

例如:MOV DPTR,#2345

則執(zhí)行完程序后,DPL中的值為23,DPL中的值為45。
Tags:單片機(jī),指令系統(tǒng),數(shù)據(jù)傳輸方式,電子設(shè)計(jì)  
責(zé)任編輯:admin
相關(guān)文章列表
51單片機(jī)指令系統(tǒng)(6)
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
欧美一区二区在线视频| 亚洲综合一区二区三区| 成人av在线网| 伊人开心综合网| 91精品国产全国免费观看| 久久不见久久见免费视频7| 日本一区二区三区视频视频| 色综合天天做天天爱| 丝瓜av网站精品一区二区| 亚洲精品一线二线三线| a级高清视频欧美日韩| 亚洲高清在线视频| 精品国产乱码久久久久久浪潮| 成人午夜短视频| 亚洲一区二区三区小说| 日韩欧美一区在线观看| 国产精品白丝av| 一区二区三区影院| 精品国产1区二区| 一本一道久久a久久精品 | 男女男精品视频| 国产精品视频免费看| 欧美视频在线一区| 国产一区二区在线看| 一区二区三区在线观看网站| 日韩三级免费观看| 91免费观看视频| 免费高清成人在线| 中文字幕佐山爱一区二区免费| 欧美一区欧美二区| 91蝌蚪国产九色| 久久精品国产亚洲aⅴ| 成人欧美一区二区三区| 日韩一二三区视频| 97久久精品人人做人人爽50路 | 国产黄色精品网站| 亚州成人在线电影| 国产精品国产成人国产三级| 欧美一区二区三区免费| 色婷婷综合久色| 国产成人综合自拍| 日韩av一区二区三区四区| 亚洲欧洲精品天堂一级| 精品区一区二区| 欧美日韩精品一区二区三区| 成人免费观看男女羞羞视频| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲精品中文在线| 国产欧美一区二区精品久导航| 91精品久久久久久久久99蜜臂| 91啪九色porn原创视频在线观看| 狠狠色丁香久久婷婷综合_中| 亚洲国产成人tv| 国产精品大尺度| 2020国产精品自拍| 91精品国产免费| 欧美亚男人的天堂| 波波电影院一区二区三区| 久久99精品国产.久久久久| 亚洲国产一二三| 亚洲精品中文在线| 中文字幕第一区二区| 欧美精品一区二区三区在线 | 亚洲成人激情自拍| 一区二区三区欧美亚洲| 国产精品国产三级国产有无不卡 | 日韩一区欧美一区| 国产亚洲综合在线| 精品粉嫩aⅴ一区二区三区四区| 欧美精品日韩一本| 欧美亚洲禁片免费| 91精品福利视频| 91一区二区三区在线播放| 国产成人av福利| 激情综合色丁香一区二区| 五月天激情综合网| 亚洲成人精品一区| 亚洲成人自拍网| 亚洲在线一区二区三区| 依依成人综合视频| 一区二区三区四区视频精品免费 | 国产精品的网站| 国产精品狼人久久影院观看方式| 国产色一区二区| 国产午夜亚洲精品午夜鲁丝片| 久久一区二区三区四区| 精品欧美一区二区久久| 欧美成人精品高清在线播放| 91精品国产色综合久久不卡蜜臀| 3d动漫精品啪啪1区2区免费| 欧美日韩国产三级| 欧美精品777| 91精品国产综合久久蜜臀| 欧美精品在线一区二区三区| 欧美日本一区二区三区| 欧美日韩国产高清一区二区| 欧美日韩一区久久| 4438x亚洲最大成人网| 欧美精品在线观看一区二区| 91麻豆精品91久久久久同性| 欧美一区二区啪啪| 欧美大胆一级视频| 久久夜色精品国产欧美乱极品| 26uuu亚洲| 亚洲国产精品av| 亚洲同性同志一二三专区| 亚洲欧美国产77777| 亚洲一区免费视频| 无码av免费一区二区三区试看 | 亚洲色图欧美在线| 亚洲一区影音先锋| 图片区小说区区亚洲影院| 免费成人av在线播放| 精品亚洲欧美一区| 国产·精品毛片| 色综合久久88色综合天天| 欧美亚洲动漫制服丝袜| 91.xcao| 欧美电影免费观看高清完整版| 精品电影一区二区| 中文字幕免费不卡| 一区二区三区免费网站| 日韩福利电影在线| 国内成+人亚洲+欧美+综合在线| 成人精品一区二区三区中文字幕| 色综合色综合色综合色综合色综合 | 国产精品电影院| 亚洲一区免费视频| 久久电影网站中文字幕| 成人av综合在线| 欧美日韩免费一区二区三区| 日韩一区二区影院| 国产精品美女久久久久aⅴ | 成人午夜免费av| 欧美亚日韩国产aⅴ精品中极品| 日韩一区二区免费视频| 欧美—级在线免费片| 亚洲美女淫视频| 日本亚洲最大的色成网站www| 国产乱淫av一区二区三区| 99热99精品| 欧美一区三区四区| 国产精品久久久久影院老司| 亚洲福利视频导航| 国产精品亚洲成人| 欧美亚洲国产怡红院影院| 精品日本一线二线三线不卡| 国产精品久久久久久久久图文区 | 国产精品美女久久久久aⅴ| 亚洲成在人线在线播放| 国产精品18久久久久久久久久久久 | 欧美天堂亚洲电影院在线播放| 精品嫩草影院久久| 一区二区三区国产精华| 激情欧美一区二区| 欧美图片一区二区三区| 2020日本不卡一区二区视频| 亚洲精品久久嫩草网站秘色| 久草中文综合在线| 欧美在线播放高清精品| 久久久精品综合| 偷拍自拍另类欧美| av在线不卡电影| 欧美成人精品福利| 亚洲午夜免费视频| 国产91精品精华液一区二区三区| 欧美日韩高清不卡| 中文字幕一区二区三区四区| 久久精品国产精品亚洲精品| 91同城在线观看| 久久免费国产精品| 日韩一区精品字幕| 91在线观看免费视频| 精品国产亚洲在线| 亚洲国产成人高清精品| 成人精品高清在线| 精品国产一区二区三区忘忧草| 一区二区激情视频| 成人av在线观| 久久久久97国产精华液好用吗| 日韩专区中文字幕一区二区| 色综合网站在线| 国产精品私人影院| 韩国毛片一区二区三区| 欧美日韩国产高清一区二区三区 | 9i在线看片成人免费| 久久嫩草精品久久久精品| 视频在线观看一区二区三区| 91美女视频网站| 国产精品―色哟哟| 精品一区二区综合| 制服丝袜中文字幕亚洲| 亚洲一区二区三区四区在线观看| 成人app下载| 国产欧美精品一区| 国产精品原创巨作av| 欧美zozo另类异族| 美国毛片一区二区三区| 9191成人精品久久| 亚洲成av人片www|