天才教育網(wǎng)合作機構 > 培訓機構 >

                                                                                        東莞電工培訓網(wǎng)

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:培訓資訊 > 程序控制指令

                                                                                        程序控制指令

                                                                                        日期:2009-11-23 10:26:42     瀏覽:964    來(lái)源:東莞電工培訓網(wǎng)

                                                                                        表 3-6 程序控制指令

                                                                                        1. 程序控制指令的一般性說(shuō)明

                                                                                        * 程序控制指令又分“無(wú)條件轉移”、“調用與返回”和“條件轉移”等三類(lèi)。

                                                                                        * 對程序控制指令應掌握:轉移地址如何生成及其轉移范圍。

                                                                                        * 注意!MCS-51條件轉移指令的運用與計算并無(wú)特別的聯(lián)系。

                                                                                        * 位值判別轉移使程序設計更為靈活,是MCS-51指令系統的特色。

                                                                                        * 應特別注意變址轉移指令JMP與比較轉移指令CJNE的用法。

                                                                                        操作碼

                                                                                        操作數

                                                                                        條 件

                                                                                        轉 移 地 址

                                                                                        說(shuō) 明

                                                                                        AJMP

                                                                                        addr11

                                                                                        無(wú)條件

                                                                                        (PC)←(PC)+2

                                                                                        (PC)0-10←addr11

                                                                                        短轉移,只改變PC的低11位,轉移范圍2K。

                                                                                        LJMP

                                                                                        addr16

                                                                                        無(wú)條件

                                                                                        (PC)←addr16

                                                                                        長(cháng)轉移,轉移范圍全64K空間

                                                                                        SJMP

                                                                                        rel

                                                                                        無(wú)條件

                                                                                        (PC)←(PC)+2+rel

                                                                                        相對轉移 ,范圍-126~+129。

                                                                                        JMP

                                                                                        @A+DPTR

                                                                                        無(wú)條件

                                                                                        (PC)←(A)+(DPTR)

                                                                                        散轉指令,根據A值變址轉移

                                                                                        ACALL

                                                                                        addr11

                                                                                        無(wú)條件

                                                                                        (PC)←(PC)+ 2

                                                                                        (PC)L、(PC)H壓棧

                                                                                        (PC)0-10←addr11

                                                                                        短調用,只改變PC的低11位,轉移范圍2K。

                                                                                        LCALL

                                                                                        addr16

                                                                                        無(wú)條件

                                                                                        (PC)←(PC)+ 3

                                                                                        (PC)L、(PC)H壓棧

                                                                                        (PC)←addr16

                                                                                        長(cháng)調用,調用范圍全64K空間

                                                                                        RET

                                                                                        隱含

                                                                                        ((SP))

                                                                                        無(wú)條件

                                                                                        (PC)H←((SP))

                                                                                        (PC)L←((SP)-1))

                                                                                        子程序返回。

                                                                                        RETI

                                                                                        中斷返回。

                                                                                        JZ

                                                                                        rel

                                                                                        (A)= 0

                                                                                        (PC)←(PC)+2+rel

                                                                                        根據A的值條件轉移。

                                                                                        JNZ

                                                                                        (A)≠0

                                                                                        JC

                                                                                        rel

                                                                                        (C)= 0

                                                                                        (PC)←(PC)+2+rel

                                                                                        根據C的值條件轉移。

                                                                                        JNC

                                                                                        (C)= 1

                                                                                        JNB

                                                                                        bit, rel

                                                                                        (bit)=0

                                                                                        (PC)←(PC)+3+rel

                                                                                        位值判別轉移。(負邏輯)

                                                                                        JB

                                                                                        (bit)=1

                                                                                        位值判別轉移。(正邏輯)

                                                                                        JBC

                                                                                        (bit)=1

                                                                                        同 JB ,加(bit)清零功能。

                                                                                        DJNZ

                                                                                        Rn, rel

                                                                                        (Rn)-1≠0

                                                                                        (PC)←(PC)+2+rel

                                                                                        循環(huán)指令。循環(huán)計數器自動(dòng)

                                                                                        減1,歸0則退出循環(huán)。

                                                                                        dir, rel

                                                                                        (dir)-1≠0

                                                                                        (PC)←(PC)+3+rel

                                                                                        操作碼

                                                                                        操作數

                                                                                        條 件

                                                                                        轉 移 地 址

                                                                                        說(shuō) 明

                                                                                        CJNE

                                                                                        A,dir,rel

                                                                                        A,#data,rel Rn,#data,rel

                                                                                        @Ri,#data,rel

                                                                                        (A)≠(direct)

                                                                                        (A)≠#data

                                                                                        (Rn)≠#data

                                                                                        ((Ri))≠#data

                                                                                        (PC)←(PC)+3+rel

                                                                                        無(wú)符號數比較,兩數不等則轉移。若前一數小,C置1;若前一數不小于后一數,C清零。

                                                                                        NOP

                                                                                        無(wú)

                                                                                        無(wú)

                                                                                        (PC)←(PC)+1

                                                                                        空操作,順序執行。

                                                                                        2. AJMP、LJMP及SJMP的轉移范圍

                                                                                        指令

                                                                                        轉移地址

                                                                                        轉移范圍

                                                                                        說(shuō)明

                                                                                        AJMP addr11

                                                                                        (PC)+2的高5位

                                                                                        + addr11

                                                                                        (PC)+2所在的2k頁(yè)

                                                                                        2k頁(yè):X000H~X7FFH

                                                                                        X800H~XFFFH

                                                                                        LJMP addr16

                                                                                        addr16

                                                                                        全64k空間

                                                                                        SJMP rel

                                                                                        (PC)+2+rel

                                                                                        (PC)-126~(PC)+129

                                                                                        Rel是8位有符號數

                                                                                        注:①表中的(PC)是轉移指令的地址。

                                                                                        ②在實(shí)際使用時(shí),地址一般用標號表示。

                                                                                        3. 變址轉移指令JMP的使用

                                                                                        * JMP的轉移地址 = 基址(DPTR)+變址偏移量(A)。

                                                                                        * 應用例:按照(A)= 0,1,2,分別轉向三個(gè)不同的程序分支。

                                                                                        MOV DPTR,#GO ;設立散轉入口地址

                                                                                        MOV B A, ;

                                                                                        RL A ; (A) ←(A)+3

                                                                                        ADD A,B ;

                                                                                        JMP @A+DPTR

                                                                                        GO: LJMP GO1 ;指令地址為GO

                                                                                        LJMP GO2 ;指令地址為GO+3

                                                                                        LJMP GO3 ;指令地址為GO+6

                                                                                        * 問(wèn)題一:上例中,如果由LJMP改用AJMP,程序應如何變化?

                                                                                        * 問(wèn)題二:上例中,如果A的值大于2會(huì )如何?怎樣解決?

                                                                                        4. 條件轉移指令的使用

                                                                                        * 因為A與C的值并不一定由計算操作而改變,故JZ、JNZ、JC、JNC等指令的運用與計算并無(wú)特別的聯(lián)系,

                                                                                        * 位值判別轉移指令使條件轉移的功能更豐富和靈活。例如:

                                                                                        * 如果(B)³0,轉向POS分支:JNB B.7,POS

                                                                                        * 如果計算溢出,轉向FL分支: JB OV,FL

                                                                                        * 如果C=1,將C清零并轉向NEG分支:JBC C,NEG

                                                                                        * 由P1.4檢測火災傳感器,1有效。傳感器報警時(shí)轉向FIRE分支:JB P1.4,FIRE

                                                                                         

                                                                                        5. 比較轉移指令CJNE及其使用

                                                                                        * 格式:CJNE 前數,后數,相對偏移量

                                                                                        轉移條件:前數≠后數

                                                                                        對C的影響:按無(wú)符號數減法。前數減后數,有借位C = 1,否則C = 0。

                                                                                        * 應用例:A、B中為無(wú)符號數,比較兩數,大數存A,小數存B。

                                                                                        CJNE A,B,0

                                                                                        JNC DONE

                                                                                        EXC A,B

                                                                                        DONE:……

                                                                                         

                                                                                        * 應用例:A、B中為有符號數,比較兩數,大數存A,小數存B。

                                                                                        有符號數比較的算法:

                                                                                        以A 與B 表示A與B的無(wú)符號值。

                                                                                        對于A >B 有,若A>0 A>B,A<0 A;

                                                                                        據此可以畫(huà)出右邊的流程圖,相應的程序如下

                                                                                        CJNE A,B,NEQ

                                                                                        SJMP DONE

                                                                                        NEQ:JNC AGT

                                                                                        XCH A,B

                                                                                        AGT:JNB Acc.7,DONE

                                                                                        XCH A,B

                                                                                        DONE:……

                                                                                        如果本頁(yè)不是您要找的課程,您也可以百度查找一下:

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..