單片機(jī)原理與應(yīng)用初探:馮·諾依曼與哈佛結(jié)構(gòu)比較
作者:佚名|分類:百科常識(shí)|瀏覽:83|發(fā)布時(shí)間:2024-07-29
一、深入了解單片機(jī)的基本概念
哈佛結(jié)構(gòu)的處理器有兩個(gè)顯著特征:它擁有兩個(gè)獨(dú)立的存儲(chǔ)模塊,分別用于存放指令和數(shù)據(jù),且這兩部分不允許混存。同時(shí),它具備兩條專用的數(shù)據(jù)傳輸路徑,即指令總線和數(shù)據(jù)總線,確保CPU與每個(gè)存儲(chǔ)模塊之間的通信無(wú)干擾。改進(jìn)后的哈佛結(jié)構(gòu)更進(jìn)一步,采用一條共用地址總線連接兩個(gè)存儲(chǔ)模塊——程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,并使用獨(dú)立的數(shù)據(jù)總線實(shí)現(xiàn)數(shù)據(jù)的讀寫。這樣,處理器可以進(jìn)行高效的并行處理。
另一方面,普林斯頓結(jié)構(gòu)(馮·諾伊曼結(jié)構(gòu))則將指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并為一個(gè)單一的存儲(chǔ)空間。在這種結(jié)構(gòu)中,程序指令地址和數(shù)據(jù)地址指向同一內(nèi)存的不同物理位置,因此它們的數(shù)據(jù)寬度相同。例如,英特爾8086中央處理器的指令和數(shù)據(jù)都是16位寬。現(xiàn)在,許多主流的CPU和微控制器依然采用馮·諾伊曼結(jié)構(gòu),如英特爾公司的其他型號(hào)、ARM7以及MIPS公司的MIPS處理器。
二、單片機(jī)應(yīng)用實(shí)例與編程挑戰(zhàn)
如果這些指令獨(dú)立執(zhí)行,且前一個(gè)指令的結(jié)果不會(huì)影響后續(xù)指令的運(yùn)行,我們可以這樣解讀:首先執(zhí)行MOV A,@R0,使得A寄存器的內(nèi)容為2CH,R0的值變?yōu)?0H。接著進(jìn)行ANL 40H,#0FH操作,將40H位置的數(shù)值與0FH進(jìn)行按位與運(yùn)算,結(jié)果為0CH。然后,ADD A, R4會(huì)將A和R4中的內(nèi)容相加,A的結(jié)果為22H,同時(shí)產(chǎn)生標(biāo)志位CY=1,AC=1,OV=0。執(zhí)行SWAP A后,A寄存器的內(nèi)容變?yōu)?EH。通過(guò)DEC @R1操作,內(nèi)存地址20H的值減1,變成0FH,R1的值保持不變?yōu)?0H。XCHD A,@R1會(huì)交換A和R1中的數(shù)據(jù),使得A變?yōu)镋FH,而內(nèi)存地址20H的內(nèi)容變?yōu)?8H。



(責(zé)任編輯:佚名)