<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機程序執行流程詳細分析

51單片機程序執行流程詳細分析

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏

這里是一個(gè)循環(huán),根據DJNZ指令的功能:每執行一次DJNZ RO, IDATALOOP就將R0的值減1,若R0的值不為0則就跳到IDATALOOP地址去。很顯然這是一個(gè)循環(huán),那么RO的值是多少呢,在以下窗口顯示:

可見(jiàn)r0的初值為0x7f,這里將要循環(huán)0x7f(128)次,具體在這里r0值的含義可查看一下子的。那么在這個(gè)循環(huán)之后程序又將去哪里呢?跳過(guò)這個(gè)循環(huán)后程序運行的地方如下:

再單步運行一次:

根據Disassembly的內容,此條語(yǔ)句執行了就又要回到main函數中去了,執行一下試試:

是的!

所以,在51單片機中,程序的執行流程就是會(huì )不斷( 以r0的值作為延遲條件, 具體含義可繼續探索 )的進(jìn)入main函數中執行main函數中的代碼。

為什么我們在linux等上面運行不帶死循環(huán)的C語(yǔ)言代碼后程序就會(huì )自行終止呢?這是不同的操作流程:

(1) C51單片機不帶OS(操作系統),代碼的執行形勢在此看來(lái)就由STARTUP.A51來(lái)安排了,沒(méi)有一個(gè)更大的程序來(lái)管理怎么調用main函數。

(2) 像Linux這類(lèi)的平臺是帶了OS的,運行一個(gè)C語(yǔ)言程序對linux來(lái)說(shuō)就是一個(gè)任務(wù),除了運行C語(yǔ)言程序這個(gè)任務(wù)外還有其它的任務(wù)。當運行一個(gè)C語(yǔ)言程序完畢時(shí),此次的任務(wù)也算是完成了。如在linux shell界面運行一個(gè)文件名為“hello.c”功能為輸出“hello world!”的C語(yǔ)言程序,過(guò)程如下:

編譯:gcc hello.c –o hello

運行:./hello

在運行hello可執行文件時(shí),可以當做是shell調用了hello這個(gè)可執行程序。在hello運行完畢后,將返回值等返回給shell界面。整個(gè)C語(yǔ)言文件的生死全有linux shell程序管理。

歸其原因,還是代碼規定的機制不一樣吧。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 51單片機程序執行流

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>