日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> 指令系統(tǒng)的分類

指令系統(tǒng)的分類

關(guān)鍵字:指令系統(tǒng) 分類 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:12

一、數(shù)據(jù)傳遞類指令

數(shù)據(jù)傳送指令包括數(shù)據(jù)的傳送、交換、堆棧數(shù)據(jù)的壓入與彈出,是最基本、使用率最高的一類指令。助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP共八種。

1.MOV類指令及功能(16條)

這類指令的功能是從源操作數(shù)到目的操作數(shù)的數(shù)據(jù)傳送。

MOV  A, Rn    ;Rn→A,寄存器Rn的內(nèi)容送到累加器A

MOV  A, direct   ;(direct)→A,直接地址中的內(nèi)容送A

MOV  A, @Ri    ;(Ri)→A,Ri間址的內(nèi)容送A

MOV  A, #data   ;data→A,立即數(shù)送A

MOV  Rn,, A    ;A→Rn,累加器A中的內(nèi)容送寄存器Rn

MOV  Rn, direct   ;(direct)→Rn;直接地址中的內(nèi)容送Rn

MOV  Rn, #data   ;data→Rn;立即數(shù)送Rn

MOV  direct, A   ;A→(direct),A中的內(nèi)容送入直接地址中

MOV  direct, Rn   ;Rn→(direct),寄存器內(nèi)容送入直接地址中

MOV  direct, direct  ;(direct) →(direct),源操作數(shù)直接地址的內(nèi)容送入目的操作數(shù)的直接地址中

MOV  direct, @Ri  ;(Ri)→(direct),Ri間址內(nèi)容送入直接地址中

MOV  direct, #data  ;data→(direct),立即數(shù)送入直接地址中

MOV  @Ri, A    ;A→(Ri),A中內(nèi)容送到Ri間址單元中

MOV  @Ri, direct  ;(direct)→(Ri),直接地址中內(nèi)容送入Ri間址單元中

MOV  @Ri, #data   ;data→(Ri),立即數(shù)送入Ri間址單元中

MOV  DPTR, #data16      ;data16→DPTR,16位常數(shù)送入數(shù)據(jù)指針DPTR中,高8位送入DPH,低8位送入DPH,低8位送入DPL中

從上述指令可以看出目的操作數(shù)有A累加器、Rn寄存器、直接地址direct及間接地址@Ri,源操作數(shù)除此之外還多一種立即數(shù)data。

例1  R0中有常數(shù)30H,而30H地址中有常數(shù)50H

執(zhí)行MOV A, R0后,A=30H,R0不變。

執(zhí)行MOV A, @R0后A=50H,而不是30H,這條指令的功能是把R0中內(nèi)容為地址的單元的書送入A,R0中是30H也就是把30H地址中內(nèi)容50H送入A。

例2  若(40H)=20H,(50H)=30H

執(zhí)行MOV 40H, 50H; (50H) →(40H)

結(jié)果:(40H)=30H,50H地址中內(nèi)容仍為30H。

例3  若A=40H,R0=30H,

執(zhí)行MOV @R0, A              ;A→(R0)

結(jié)果:(30H)=40H,A與R0皆不變,即A=40H,R0=30H。

該指令功能是把A中內(nèi)容送入R0間址單元即R0中內(nèi)容為地址的單元。

例4  執(zhí)行MOV DPTR, #2040H          ;2040H→DPTR

結(jié)果:DPH=20H, DPL=40H

DPTR是片外RAM地址指針,只有這一條指令是傳送16位數(shù)據(jù)。

2.MOVC類指令及功能(2條)

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

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

功能:該類屬于查表指令,利用這兩條指令很方便地查找放在程序存儲(chǔ)器中數(shù)據(jù)表格的內(nèi)容。

例1  程序

1000H MOV A, #10H       ;10H→A

1002H MOVC A, @A+PC       ;PC+1→PC,PC=1003H,(A+PC)=(10H+1003H)→A

...

1010H 02H

1011H 04H

1012H 06H

1013H 08H

程序執(zhí)行結(jié)果:A=08H

用MOVC A, @A+PC指令需注意兩點(diǎn):

1)指令中的PC是執(zhí)行完本條指令后的PC值,即PC等于本條指令地址加1。

2)A是修正值,它等于查表指令和欲查數(shù)據(jù)相間隔字節(jié)數(shù)。A的范圍是0~255,一次該指令只能查找本指令后的256B范圍內(nèi)的表格,故稱為近程查表。

例2  程序

1000H MOV A, #01H     ;01H→A

1002H MOV DPTR, #6000H    ;6000H→DPTR

1005H MOVC A,@A+DPTR   ;(A+DPTR)=(01H+6000H)=(6001H) →A

...

6001H 0AH

6002H 0BH

6003H 0CH

6004H 0DH

程序執(zhí)行結(jié)果:A=0AH,查到了地址為6001H單元中的數(shù)據(jù)。

用MOVC A, @A+DPTR指令查表特點(diǎn):A, DPTR都可以改變,因此可在64KB范圍內(nèi)查表,故稱為遠(yuǎn)程查表。這條指令更方便。

3.MOVX類指令(4條)

MOVX A, @DPTR         ;(DPTR) →A,DPTR間址單元內(nèi)容送A

MOVX @DPTR, A         ;A→(DPTR), A 中內(nèi)容送入DPTR間址單元

MOVX A, @Ri          ;(Ri) →A,Ri間址單元內(nèi)容送A

MOVX @Ri, A          ;A→(Ri), A中內(nèi)容送Ri間址單元

MOVX類指令功能:這四條指令專門用來(lái)與外部數(shù)據(jù)存儲(chǔ)區(qū)傳送數(shù)據(jù)。CPU與外部RAM傳送數(shù)據(jù)時(shí)只能用間接尋址方式。

例1  把外部數(shù)據(jù)存儲(chǔ)單元2000H中的數(shù)據(jù)送到4000H單元中,設(shè)2000H中有數(shù)據(jù)30H。

程序             各條指令執(zhí)行結(jié)果

MOV DPTR, #2000H         ;2000H DPTR, DPTR=2000H

MOVX A, @DPTR          ;(DPTR)  A即(2000) A,A=30H

MOV DPTR, #4000H        ;4000H→DPTR, DPTR=4000H

MOVX @DPTR, A          ;A→(DPTR)即A→(4000H), (4000H)=30H

例2  把內(nèi)部RAM50H單元數(shù)據(jù)送到片外20H單元,設(shè)50H中單元存有數(shù)據(jù)10H。

程序                各條指令執(zhí)行結(jié)果

MOV A,50H              ;(50H) 各條指令執(zhí)行結(jié)果A, A=10H

MOV R0,#20H          ;20H→R0, R0=20H

MOVX @R0, A          ;A→(R0)即A→(20H)則20H=10H

注意:與外部RAM傳送數(shù)據(jù)時(shí),地址小于256B用Ri間址,大于256B時(shí)用DPTR間址。

4.交換指令

XCH A, Rn             ;Rn A, Rn與A內(nèi)容交換

XCH A,direct            ;(direct)  A, 直接地址內(nèi)容與A內(nèi)容交換

XCH A, @Ri         ;(Ri)  A,Ri間址內(nèi)容與A內(nèi)容交換

XCHD A, @Ri         ;(Ri.3~Ri.0) A.3~A.0, Ri間址內(nèi)容低4

位與A中低4 位內(nèi)容交換

SWAP  A          ;A.3~A.0  A.7~A.4, A中高4位與低4位

交換

例  若R0=30H, A=F0H, (30H)=46H

執(zhí)行    XCH A, R0               ;結(jié)果:A=30H,R0=F0H, R0與A 內(nèi)容交換

執(zhí)行    XCH A, @R0               ;結(jié)果:A=46H, (30H)=F0H, R0中不變,

;實(shí)際上是(R0) A即(30H) A

若執(zhí)行 XCHD A, @R0               ;結(jié)果:A=F6H,(30)H=40H

;A與(30H)中低4位交換,高4位不變

執(zhí)行 SWAP A                 ;結(jié)果:A=0FH, 高低4位互換

5.堆棧操作指令(2條)

PUSH、POP屬堆棧操作指令,其功能是把直接地址中的內(nèi)容壓入堆棧保存,或從堆棧中取出(彈出)數(shù)據(jù)到直接地址中。

PUSH direct     ;SP+1→SP, (direct) →(SP)

;直接地址內(nèi)容壓入堆棧頂

POP  direct     ;(SP)→(direct), SP-1→SP

;堆棧棧頂內(nèi)容彈出到直接地址

注意:堆棧是用戶自己設(shè)定的內(nèi)部RAM中的一塊專用存儲(chǔ)區(qū),使用堆棧時(shí)一定先設(shè)堆棧指針。堆棧遵循后進(jìn)先出的原則安排數(shù)據(jù)。壓入數(shù)據(jù)時(shí)SP先加1,再壓入;彈出時(shí),先彈出數(shù)據(jù),SP再減1。

例  設(shè)堆棧指針為30H,為保護(hù)現(xiàn)場(chǎng)把A和B中的內(nèi)容壓入堆棧保護(hù),然后根據(jù)需要再把兩者彈出。設(shè)A中為30H,B中為01H。

程序        執(zhí)行結(jié)果

MOV   SP, #30H  ;30H→SP, SP=30H設(shè)堆棧指針為30H

PUSH  ACC        ;SP+1→SP=31H, A→(SP)即A→(31H),(31H)=30H

PUSH  B    ;SP+1→SP=32H, B→(SP)即B→(32H),(32H)=01H

POP   B    ;SP→B即(32H)→B, B=01H, SP-1→SP=31H

POP  ACC    ;SP→A即(31H)→A, A=30H, SP-1→SP=30H

從此例可以看出壓入、彈出過(guò)程SP的變化規(guī)律

下頁(yè)我們將總結(jié)——算術(shù)運(yùn)算指令

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

南平市| 慈溪市| 会宁县| 武川县| 卫辉市| 平昌县| 鄂托克前旗| 公主岭市| 华亭县| 开封县| 汤阴县| 镇平县| 桂阳县| 界首市| 宁武县| 大厂| 临沭县| 莱西市| 喀喇沁旗| 宁武县| 鹤山市| 商南县| 辽中县| 镇巴县| 大名县| 镶黄旗| 大悟县| 温宿县| 萝北县| 改则县| 平遥县| 肇东市| 涞源县| 东光县| 鹿泉市| 页游| 浙江省| 宜都市| 峡江县| 沾化县| 土默特左旗|