<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單片機執行指令的過(guò)程

51單片機執行指令的過(guò)程

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

的過(guò)程
單片機執行程序的過(guò)程,實(shí)際上就是執行我們所編制程序的過(guò)程。即逐條指令的過(guò)程。計算機每執行一條指令都可分為三個(gè)階段進(jìn)行。即取指令-----分析指令-----。
取指令的任務(wù)是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
分析指令階段的任務(wù)是:將指令寄存器中的指令操作碼取出后進(jìn)行譯碼,分析其指令性質(zhì)。如指令要求操作數,則尋找操作數地址。
計算機執行程序的過(guò)程實(shí)際上就是逐條指令地重復上述操作過(guò)程,直至遇到停機指令可循環(huán)等待指令。
一般計算機進(jìn)行工作時(shí),首先要通過(guò)外部設備把程序和數據通過(guò)輸入接口電路和數據總線(xiàn)送入到存儲器,然后逐條取出執行。但單片機中的程序一般事先我們都已通過(guò)寫(xiě)入器固化在片內或片外程序存儲器中。因而一開(kāi)機即可。
下面我們將舉個(gè)實(shí)例來(lái)說(shuō)明指令的執行過(guò)程:
開(kāi)機時(shí),程序計算器PC變?yōu)?000H。然后單片機在時(shí)序電路作用下自動(dòng)進(jìn)入執行程序過(guò)程。執行過(guò)程實(shí)際上就是取出指令(取
出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環(huán)過(guò)程。
例如執行指令:MOV A,#0E0H,其機器碼為“74H E0H”,該指令的功能是把操作數E0H送入累加器,
0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開(kāi)始運行時(shí),首先是進(jìn)入取指階段,其次序是:
1 程序計數器的內容(這時(shí)是0000H)送到地址寄存器;
2 程序計數器的內容自動(dòng)加1(變?yōu)?001H);
3 地址寄存器的內容(0000H)通過(guò)內部地址總線(xiàn)送到存儲器,以存儲器中地址譯碼電跟,使地址為0000H的單元被選中;
4 CPU使讀有效;
5 在讀命令控制下被選中存儲器單元的內容(此時(shí)應為74H)送到內部數據總線(xiàn)上,因為是取指階段,所以該內容通過(guò)數據總線(xiàn)被送到指令寄存器。
至此,取指階段完成,進(jìn)入譯碼分析和執行指令階段。
由于本次進(jìn)入指令寄存器中的內容是74H(操作碼),以譯碼器譯碼后單片機就會(huì )知道該指令是要將一個(gè)數送到A累加器,而該數是在這個(gè)代碼的下一個(gè)存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個(gè)字節。其過(guò)程與取指階段很相似,只是此時(shí)PC已為0001H。指令譯碼器結合時(shí)序部件,產(chǎn)生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經(jīng)內部數據總線(xiàn)進(jìn)入A累加器,而不是進(jìn)入指令寄存器。至此,一條指令的執行完畢。單片機中PC=0002H,PC在CPU每次向存儲器取指或取數時(shí)自動(dòng)加1,單片機又進(jìn)入下一取指階段。這一過(guò)程一直重復下去,直至收到暫停指令或循環(huán)等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定的功能



評論


相關(guān)推薦

技術(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>