一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>計(jì)算機(jī)原理基礎(chǔ)課:組合電路和時(shí)序電路資料下載

計(jì)算機(jī)原理基礎(chǔ)課:組合電路和時(shí)序電路資料下載

2021-04-14 | pdf | 184.66KB | 次下載 | 2積分

資料介紹

這個(gè)題目是我臨時(shí)想的,不知道是否準(zhǔn)確,一直想寫一個(gè)類似的東西,希望能夠引起童鞋們關(guān)注硬件并喜歡上硬件。 我是文科出生,研究生階段才轉(zhuǎn)向計(jì)算機(jī),中間有很長(zhǎng)一段時(shí)間都只做軟件理論相關(guān)研究和一些具體的軟件項(xiàng)目,包括編譯器、電力系統(tǒng)監(jiān)控器、軟件測(cè)試工具研發(fā)等;直到2009年,才開始陸陸續(xù)續(xù)接觸一些硬件項(xiàng)目,說是硬件項(xiàng)目,其實(shí)主要是一些嵌入式的項(xiàng)目,如世界杯前做的3G轉(zhuǎn)Wifi和自己玩的一些小車和傳感器等。 在做嵌入式項(xiàng)目之前,壓根就沒接觸過硬件方面的開發(fā)知識(shí),難度可想而知,什么叫編碼器、什么叫譯碼器、怎么做分頻、怎么做倍頻、怎么做A/D轉(zhuǎn)換、D/A等等,一系列的問題迎面而來。為了完成項(xiàng)目,只能硬著頭皮上,從最基礎(chǔ)的數(shù)字邏輯開始看起,從二進(jìn)制、卡諾圖入手,逐漸深入到組合電路和時(shí)序電路,再結(jié)合一本叫做《計(jì)算機(jī)組成與設(shè)計(jì)-硬件/軟件接口》,才逐漸深入明白我們做的編譯器后端的具體工作原理,在此基礎(chǔ)上對(duì)軟件的各種性能問題有了更深刻的認(rèn)識(shí)。 組合電路和時(shí)序電路是計(jì)算機(jī)原理的基礎(chǔ)課,組合電路描述的是單一的函數(shù)功能,函數(shù)輸出只與當(dāng)前的函數(shù)輸入相關(guān);時(shí)序電路則引入了時(shí)間維度,時(shí)序電路在通電的情況下,能夠保持狀態(tài),電路的輸出不僅與當(dāng)前的輸入有關(guān),而且與前一時(shí)刻的電路狀態(tài)相關(guān),如我們個(gè)人PC中的內(nèi)存和CPU中的寄存器,均為時(shí)序電路。 說了這么多,我們學(xué)習(xí)的組合電路和時(shí)序電路在計(jì)算機(jī)中又是怎么一回事呢?為了便于理解,下面以一個(gè)大家都能接受的C語言程序開始,從上層向下層開始解釋。 void main(){ int a = 3, b = 5; int sum = a b; } 這個(gè)例子大家都能明白,main函數(shù)要做的事情就是實(shí)現(xiàn)兩個(gè)數(shù)的加法操作。這是我們?nèi)祟惖乃季S方式,但是計(jì)算機(jī)并不認(rèn)識(shí),如何讓計(jì)算機(jī)理解呢?于是,我們需要將上面這個(gè)程序翻譯成機(jī)器能理解的模樣,這時(shí)候就需要借助編譯器(如常見的gcc、msc等)將上面的程序翻譯成MIPS指令(不同的CPU有不同的指令集,包括X86指令集、MIPS指令集、Sparc指令集等,我們?cè)谶@里用MIPS指令集,咱們的龍芯也是采用MIPS指令集),如下所示: #下面的每條匯編代碼對(duì)應(yīng)一個(gè)二進(jìn)制 addi $t0, 0, 3 # a = 0 3, a保存在$t0寄存器中, 對(duì)應(yīng)的二進(jìn)制代碼為:0010 00** **** **** **** **** **** ****(這里的星號(hào)*表示二進(jìn)制,這里暫時(shí)不關(guān)心) addi $t1, 0, 5 # b = 0 5, b保存在$t1寄存器中 addi $t2, $t1, $t0 # sum = a + b, sum保存在$t2寄存器中 到這里,大家一定還在疑惑,不是說要翻譯成二進(jìn)制代碼嗎?怎么是MIPS匯編語言?對(duì),就是匯編語言,這個(gè)匯編語言中的每一條指令就對(duì)應(yīng)一條二進(jìn)制代碼,匯編的方式更容易讓人理解。 現(xiàn)在我們得到了計(jì)算機(jī)可以理解的MIPS指令(可以想象成可執(zhí)行程序)了,接下來的問題是如何執(zhí)行MIPS指令。 要執(zhí)行程序,首先必須將可執(zhí)行程序文件(從外設(shè))加載到內(nèi)存??蓤?zhí)行文件加載到內(nèi)存時(shí),操作系統(tǒng)會(huì)為每個(gè)可執(zhí)行程序在內(nèi)存中分配四個(gè)區(qū): 1 代碼區(qū)。也就是前面的到的匯編代碼所對(duì)應(yīng)的二進(jìn)制碼 2 全局?jǐn)?shù)據(jù)區(qū)。全局變量,靜態(tài)變量放在這個(gè)區(qū) 3 堆區(qū)。表示在程序執(zhí)行過程中,動(dòng)態(tài)申請(qǐng)的空間在這個(gè)區(qū),如C語言中的malloc, free操作均是針對(duì)此區(qū)中的對(duì)象執(zhí)行申請(qǐng)或釋放操作 4 棧區(qū)。函數(shù)運(yùn)行時(shí),局部變量的保存區(qū)域。 我們重點(diǎn)關(guān)注代碼區(qū)和棧區(qū),初始時(shí),其分布如下圖所示: 代碼區(qū)-1.png 其中PC(Program Counter)是程序計(jì)數(shù)器(是CPU中的一個(gè)寄存器,具有數(shù)據(jù)存儲(chǔ)功能),即用來指示下一個(gè)即將執(zhí)行的指令的地址,本例中,進(jìn)入main函數(shù)后,即將執(zhí)行的第一條指令是a = 3,其地址為:0X FF FF FF 00, 因此PC指向其對(duì)應(yīng)的匯編代碼的地址。 CPU根據(jù)PC的的值,從指定地址0X FF FF FF 00處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行a=3)。 當(dāng)a = 0執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 04,即b = 5的指令的地址。此時(shí),棧區(qū)的狀態(tài)為: 棧區(qū)-1.png 接著,CPU根據(jù)PC的的值,從指定地址0X FF FF FF 04處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行b=5)。當(dāng)b=5執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 08,即sum=a+b的指令的地址。此時(shí),棧區(qū)的狀態(tài)為: 棧區(qū)-2.png 然后,CPU根據(jù)PC的的值,從指定地址0X FF FF FF 08處獲取指令,然后解析指令,并執(zhí)行指令(即執(zhí)行sum=a+b)。當(dāng)sum=a+b執(zhí)行完畢后,PC執(zhí)行操作:PC = PC + 4,PC指向0X FF FF FF 12(因?yàn)?,指令已?jīng)執(zhí)行完畢,這里應(yīng)該提示要從main函數(shù)返回)。此時(shí),棧區(qū)的狀態(tài)為: 棧區(qū)-3.png 至此為止,main函數(shù)內(nèi)部的流程基本上陳述完了(關(guān)于函數(shù)間調(diào)用,相對(duì)復(fù)雜,計(jì)算機(jī)組成中會(huì)詳細(xì)講解),但如何實(shí)現(xiàn)這些步驟呢,其中的關(guān)鍵問題包括如下: 問題: 1、知道內(nèi)存地址,如何定位到那個(gè)地址???答案:地址譯碼器 2、獲取到a=3對(duì)應(yīng)的指令后,如何知道是做a=0 3的操作???答案:解析指令,指令譯碼器 3、PC寄存器如何保存值?如何做加4操作?答案:計(jì)數(shù)器(寄存器講解) 作者:CodingTech 來源: (mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1491次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  95次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  11次下載  |  免費(fèi)
  11. 6100W短波放大電路圖
  12. 0.05 MB  |  4次下載  |  3 積分
  13. 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
  14. 0.23 MB  |  4次下載  |  免費(fèi)
  15. 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  16. 0.11 MB  |  4次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537793次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)