日产精品视频无码免费_亚洲蜜臀AV日韩熟妇在线_国产亚洲精品女人久久久久久 _妞中文字幕在线视频导航

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

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

51單片機指令系統(tǒng):控制轉(zhuǎn)移類指令(8)

作者:佚名    文章來源:網(wǎng)絡(luò)    點擊數(shù):    更新時間:2008-11-4
第二十六課:控制轉(zhuǎn)移類指令分析
控制轉(zhuǎn)移指令用于控制程序的流向,所控制的范圍即為程序存儲器區(qū)間,MCS-51系列單片機的控制轉(zhuǎn)移指令相對豐富,有可對64kB程序空間地址單元進行訪問的長調(diào)用、長轉(zhuǎn)移指令,也有可對2kB字節(jié)進行訪問的絕對調(diào)用和絕對轉(zhuǎn)移指令,還有在一頁范圍內(nèi)短相對轉(zhuǎn)移及其它無條件轉(zhuǎn)移指令,這些指令的執(zhí)行一般都不會對標志位有影響。

[1]. 無條件轉(zhuǎn)移指令(4條)
這組指令執(zhí)行完后,程序就會無條件轉(zhuǎn)移到指令所指向的地址上去。長轉(zhuǎn)移指令訪問的程序存儲器空間為16地址64kB,絕對轉(zhuǎn)移指令訪問的程序存儲器空間為11位地址2kB空間。

LJMP  addr16     ;addr16→(PC),給程序計數(shù)器賦予新值(16位地址)

AJMP  addr11     ;(PC)+2→(PC),addr11→(PC10-0)程序計數(shù)器賦予新值(11位地址),(PC15-11)不改變

SJMP  rel         ;(PC)+ 2 + rel→(PC)當(dāng)前程序計數(shù)器先加上2再加上偏移量給程序計數(shù)器賦予新值

JMP  @A+DPTR   ;(A)+ (DPTR)→(PC),累加器所指向地址單元的值加上數(shù)據(jù)指針的值給程序計數(shù)器賦予新值

這幾條指令,如果要他細分析的話,區(qū)別較大,但初學(xué)者時,可以不理會那么多,統(tǒng)統(tǒng)理解成LJMP標號,也就是跳轉(zhuǎn)到一個標號處,但事實上,JMP標號,在前面的例程中我們已接觸過,并且也知道如何來使用了,AJMP和SJMP也是一樣,那么這幾條指令它們的區(qū)別何在呢?在于跳轉(zhuǎn)的范圍不一樣。好比跳遠,LJMP一下就能跳64K那么遠(當(dāng)然近了就更沒關(guān)系了)。而AJMP最多只能跳2K距離,而SJMP則最多只能跳256這么遠,原則上,所有用AJMP或SJMP的地方都可以用LJMP來替代。因此在初學(xué)者時,需要跳轉(zhuǎn)時可以全用LJMP。

但是在查表時要注意會出錯,因為他們的機器周期不一樣,取得的數(shù)也不一樣。

[2]. 條件轉(zhuǎn)移指令(8條)
條件轉(zhuǎn)移指令是指在滿足一定條件時進行相對轉(zhuǎn)移

JZ  rel               ; A=0,(PC)+ 2 + rel→(PC),累加器中的內(nèi)容為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

JNZ  rel              ; A≠0,(PC)+ 2 + rel→(PC),累加器中的內(nèi)容不為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

這兩條指令是判斷A內(nèi)容是否為0轉(zhuǎn)移指令
第一條指令的功能是:如果(A)=0,則轉(zhuǎn)移,否則順序執(zhí)行(執(zhí)行本指令的下一條指令)。轉(zhuǎn)移到什么地方去呢?如果按照傳統(tǒng)的方法,就要算偏移量,很麻煩,好在現(xiàn)在我們可以借助機器匯編了,因此這條指令我們可以這樣理解:
JB  標號
即轉(zhuǎn)移到標號處,下面舉一例說明:
   MOV  A,R0
   JZ   L1
   MOV  R1,#00H
   AJMP L2
L1:MOV  R1,#0FFH
L2:SJMP L2
   END
在執(zhí)行上面這段程序前,如果R0中的值是0的話,就轉(zhuǎn)移到L1執(zhí)行,因此最終的執(zhí)行結(jié)果是R1中的值為0FFH。而如果R0中的值不等于0,則順序執(zhí)行,也就是執(zhí)行MOV  R1,#00H指令。最終的執(zhí)行結(jié)果是R1中的值等于0。
第一條指令的功能清楚了,第二條當(dāng)然就好理解了,如果A中的值不等于0,就轉(zhuǎn)移。把上面的例子中的JZ改成JNZ試試看,程序執(zhí)行的結(jié)果是怎樣的?

CJNE  A, data, rel     ; A≠(data),(PC)+ 3 + rel→(PC),累加器中的內(nèi)容不等于直接地址單元的內(nèi)容,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE  A, #data, rel    ; A≠#data,(PC)+ 3 + rel→(PC),累加器中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE  Rn, #data, rel  ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE  @Ri, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址單元中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

第一條指令的功能是將A中的值和立即數(shù)data比較,如果兩者相等,就順序執(zhí)行(執(zhí)行程序的下一條指令),如果不相等,就轉(zhuǎn)移,同樣的,我們可以將rel理解成標號。即CJNE  A,#data,標號。這樣利用這條指令,我們就可以判斷兩數(shù)是否相等,這在很多場合是非常有用的。但有時還想得知兩數(shù)比較后哪個大,哪個小。本條指令也具有這樣的功能,如果兩數(shù)不相等,則CPU還會反映出哪個數(shù)大,哪個數(shù)小,這是用CY(進位位)來實現(xiàn)的。如果前面的數(shù)(A中的)大,則CY=0,否則CY=1,因此在程序轉(zhuǎn)移后再次利用CY就可判斷出A中的數(shù)比data大還是小了。
例:
   MOV  A,R0
   CJNE A,#10H,L1
   MOV  R1,#0FFH
   AJMP L3
L1:JC   L2
   MOV  R1,#0AAH
   AJMP L3
L2:MOV  R1,#0FFH
L3:SJMP L3
上面的程序中有一條指令我們還沒學(xué)過,即JC,這條指令的原型是JC  rel,作用我上面的JZ類似,但是它是判斷CY是0,還是1進行轉(zhuǎn)移,如果CY=1,則轉(zhuǎn)移到JC后面的標號處執(zhí)行,如果CY=0則順序執(zhí)行(執(zhí)行它的下面的一條指令)。
分析一下上面的程序,如果(A)=10H,則順序執(zhí)行,即R1=0。如果(A)不等于10H,則轉(zhuǎn)到L1處繼續(xù)執(zhí)行,在L1處,再次進行判斷,如果(A)大于10H,則CY=1,將順序執(zhí)行,即MOV  R1,#0AAH指令,而如果(A)小于10H,則將轉(zhuǎn)移到L2處運行,即執(zhí)行MOV  R1,#0FFH指令。
因此最終結(jié)果是:本程序執(zhí)行前,如果(R0)=10H,則(R1)=00H,如果(R0)大于10H,則(R1)=0AAH,如果(R0)小于10H,則(R1)=0FFH。
弄懂了這條指令,其它的幾條就類似了,第二條是把A當(dāng)中的值和直接地址的中的值比較,第三條則是將直接地址中的值和立即數(shù)比較,第四條是將間址尋址得到的數(shù)和立即數(shù)比較,這里就不詳談了,下面給出幾個相應(yīng)的例子。
CJNE  A,10H   ;把A中的值和10H中的值比較(注意和前面題目的區(qū)別)
CJNE  10H,#35H;把10H中的值和35H中的值比較
CJNE  @R0,#35H;把R0中的值作為地址,從此地址中取數(shù)并和35H比較。

DJNZ  Rn, rel ; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)工作寄存器Rn減1不等于0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

DJNZ  data, rel ; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)直接地址單元中的內(nèi)容減1不等于0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

這兩條指令在前面我們已有提到,這里就不多說了。

[3]. 子程序調(diào)用指令(1條)
子程序是為了便于程序編寫,減少那些需反復(fù)執(zhí)行的程序占用多余的地址空間而引入的程序分支,從而有了主程序和子程序的概念,需要反復(fù)執(zhí)行的一些程序,我們在編程時一般都把它們編寫成子程序,當(dāng)需要用它們時,就用一個調(diào)用命令使程序按調(diào)用的地址去執(zhí)行,這就需要子程序的調(diào)用指令和返回指令。

LCALL  addr16 ; 長調(diào)用指令,可在64kB空間調(diào)用子程序。此時(PC)+ 3→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr16→(PC),即分別從堆棧中彈出調(diào)用子程序時壓入的返回地址

ACALL  addr11 ; 絕對調(diào)用指令,可在2kB空間調(diào)用子程序,此時(PC)+ 2→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr11→(PC10-0)

上面這兩條指令就是在主程序中調(diào)用子程序的。

RET  ; 子程序返回指令。此時(SP)→(PC15-8),(SP)- 1→(SP),(SP)→(PC7-0),(SP)- 1→(SP)

子程序返回指令
子程序執(zhí)行完后必須回到主程序,如何返回呢?只要執(zhí)行一條返回指令就可以了,即執(zhí)行RET。


RETI  ; 中斷返回指令,除具有RET功能外,還具有恢復(fù)中斷邏輯的功能,需注意的是,RETI指令不能用RET代替

[4]. 空操作指令(1條)
所謂空操作,就是什么也不做,停一個周期,一般用作短時間的延時。

NOP     ; 這條指令除了使PC加1,消耗一個機器周期外,沒有執(zhí)行任何操作。可用于短時間的延時
Tags:單片機,指令,控制轉(zhuǎn)移  
責(zé)任編輯:admin
相關(guān)文章列表
沒有相關(guān)文章
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
天天做日日爱| 一级女性全黄生活片免费| 色综合久久天天综线观看| a级黄色毛片免费播放视频| 精品久久久久久免费影院| 亚洲 欧美 91| 久草免费在线视频| 国产一区二区精品| 日韩一级黄色| 999久久狠狠免费精品| 97视频免费在线| 精品国产亚一区二区三区| 超级乱淫伦动漫| 欧美a免费| 日韩av成人| 成人免费一级毛片在线播放视频| 久久久久久久久综合影视网| 久久福利影视| 一级女性大黄生活片免费| 九九免费精品视频| 免费国产在线观看| 国产一区二区精品| 国产视频一区二区在线观看| 韩国毛片基地| a级黄色毛片免费播放视频| 国产伦精品一区二区三区无广告| 你懂的在线观看视频| 成人免费高清视频| 四虎论坛| 精品久久久久久综合网| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人影院久久久久久影院| 二级特黄绝大片免费视频大片| 亚洲天堂在线播放| 一级毛片视频在线观看| 青青青草视频在线观看| 久久99欧美| 日韩在线观看视频免费| 日本在线不卡视频| 精品国产三级a| 午夜欧美福利| 精品国产一区二区三区久久久蜜臀| 精品在线免费播放| 午夜激情视频在线观看| 午夜激情视频在线观看| 欧美国产日韩久久久| 国产网站免费| 国产视频在线免费观看| 黄视频网站在线免费观看| 成人在激情在线视频| 国产网站麻豆精品视频| 国产高清在线精品一区a| 亚欧成人乱码一区二区| 高清一级毛片一本到免费观看| 国产一区二区高清视频| 精品久久久久久免费影院| 久久精品欧美一区二区| 亚飞与亚基在线观看| 国产a视频| 美女免费精品视频在线观看| 国产亚洲免费观看| 999精品在线| 国产成人精品综合久久久| 欧美另类videosbestsex久久| 日韩在线观看视频网站| 国产一区免费观看| 久久99欧美| 韩国三级香港三级日本三级la| 国产国语在线播放视频| 国产一区二区精品久久91| 日韩欧美一二三区| 你懂的在线观看视频| 999久久66久6只有精品| 你懂的在线观看视频| 日韩欧美一二三区| 麻豆网站在线免费观看| 精品视频在线观看免费| 国产一区二区精品| 日本特黄特黄aaaaa大片| 日韩一级黄色| 国产网站免费在线观看| 欧美国产日韩在线| 欧美一级视频免费观看| 高清一级做a爱过程不卡视频| 成人高清免费| 国产麻豆精品hdvideoss| 91麻豆精品国产自产在线观看一区| 欧美激情一区二区三区在线播放| 精品视频在线观看视频免费视频| 99热热久久| 麻豆午夜视频| 精品国产香蕉在线播出| 免费的黄视频| 青青久久精品| 日韩一级黄色片| 国产成人精品在线| 免费的黄色小视频| 欧美电影免费| 免费毛片播放| 欧美大片毛片aaa免费看| 成人免费网站视频ww| 亚洲天堂一区二区三区四区| 美国一区二区三区| 91麻豆精品国产自产在线观看一区| 91麻豆高清国产在线播放| 成人免费一级纶理片| 国产伦久视频免费观看视频| 精品视频在线观看视频免费视频| 成人高清免费| 免费国产在线观看| 国产视频网站在线观看| 国产a网| 成人a级高清视频在线观看| 九九久久99综合一区二区| 一级毛片视频免费| 你懂的在线观看视频| 天天色成人| 人人干人人草| 国产亚洲精品aaa大片| 国产高清视频免费观看| 黄视频网站免费看| 青青青草影院| 四虎影视库| 精品国产三级a∨在线观看| 欧美一区二区三区在线观看| 精品视频一区二区三区| 黄视频网站免费看| 黄视频网站免费| 国产激情一区二区三区| 国产a网| 国产国语在线播放视频| 久久精品大片| 天天做日日爱夜夜爽| 精品国产香蕉伊思人在线又爽又黄| 精品国产一区二区三区精东影业| 欧美日本二区| 免费一级片在线观看| 免费一级片在线观看| 青青青草影院| 欧美爱色| 欧美电影免费看大全| 国产不卡精品一区二区三区| 91麻豆精品国产高清在线| 国产精品1024永久免费视频 | 一级毛片看真人在线视频| 国产网站在线| 日本在线不卡视频| 午夜在线观看视频免费 成人| 可以在线看黄的网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美一区二区三区性| 一级毛片看真人在线视频| 亚洲女人国产香蕉久久精品 | 国产成人精品一区二区视频| 国产视频一区二区在线观看| 国产视频一区二区在线观看| 黄色免费三级| a级黄色毛片免费播放视频| 国产亚洲精品aaa大片| 久久国产精品自由自在| 国产伦精品一区三区视频| 精品国产一区二区三区国产馆| 欧美另类videosbestsex高清| 国产精品自拍在线| 精品视频免费看| 国产精品1024永久免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产一区二区精品久久91| 美女被草网站| 麻豆网站在线看| 欧美大片毛片aaa免费看| 亚洲女人国产香蕉久久精品| 国产高清视频免费观看| 日本免费看视频| 国产视频一区二区三区四区| 国产视频一区二区在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产亚洲精品成人a在线| 国产极品精频在线观看| 青青久在线视频| 欧美日本免费| 久久国产精品只做精品| 国产成+人+综合+亚洲不卡| 国产不卡高清在线观看视频| 麻豆系列国产剧在线观看| 国产一区二区福利久久| 四虎影视久久| 久久国产精品永久免费网站| 99久久精品国产片| 午夜欧美福利| 日本伦理网站| 国产网站免费视频| 中文字幕一区二区三区精彩视频 | 久久成人亚洲| 青青青草影院| a级精品九九九大片免费看| 99久久精品国产麻豆| 精品国产一区二区三区免费| 麻豆网站在线免费观看| 国产一区二区高清视频|