計算機組成原理課程設計(同或運算、比較兩個數(shù)大小)_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計說明書</b></p><p>  題目: 設計指令系統(tǒng)實現(xiàn)同或運算、比較兩個數(shù)大小 </p><p>  院 系: 計算機科學與工程學院 </p><p>  專業(yè)班級: 計算機課10-* </p><p>  學 號: **

2、* </p><p>  學生姓名: </p><p>  指導教師: </p><p>  2013年 01 月 09 日</p><p>  課程設計(論文)任務書</p><p>  計算機科學與工程學院

3、 計算機科學與技術系</p><p>  2013年01月09日 </p><p>  課程設計(論文)成績</p><p><b>  摘要</b></p><p>  計算機組成原理課程設計課題是基本模型機的設計與實現(xiàn)。利用CPU與簡單模型機來實現(xiàn)計算機組成原

4、理課程設計,編寫指令的應用程序,用微程序控制器實現(xiàn)一系列的指令功能,最終達到將理論與實踐相聯(lián)系。本次設計完成了相關指令的格式以及編碼的設計,實現(xiàn)了機器指令微代碼,完成具有一定功能的程序。</p><p>  同或運算和比較兩個數(shù)大小是在基本模型機的基礎上構建一組能實現(xiàn)輸入、輸出、減、邏輯與、邏輯或、邏輯非、跳轉這7個功能的指令,這些指令的助記符不得與指導書上相同。指令包括立即尋址和寄存器尋址兩種尋址方式。利用新構

5、建的指令系統(tǒng)編程,實現(xiàn)同或運算和比較兩數(shù)大小的功能。</p><p>  本次課程設計分為以下幾各面:</p><p>  系統(tǒng)分析,對系統(tǒng)設計的背景和設計目標做了一個簡單的介紹;</p><p>  從模型機的指令系統(tǒng)入手,對整個系統(tǒng)的指令系統(tǒng)進行設計;</p><p>  使用設計好的指令系統(tǒng)實現(xiàn)同或運算和比較兩個數(shù)的大小關系;</

6、p><p>  最后還進行了對本次設計的總結和對設計的系統(tǒng)的改進工作提出了一些建議;</p><p>  本次課程設計偏重于對計算機工作的原理和計算機微機的指令系統(tǒng)學習和深入的了解。</p><p>  對以后的學習打下一個好的基礎。</p><p>  關鍵詞:指令,計算機組成原理,指令系統(tǒng),模型機,同或運算,比較兩個數(shù)大小</p>

7、<p><b>  目錄</b></p><p><b>  1系統(tǒng)分析1</b></p><p>  1.1 設計背景1</p><p>  1.2 設計目標2</p><p><b>  2系統(tǒng)設計3</b></p><p> 

8、 2.1 模型機的指令系統(tǒng)設計3</p><p>  2.2 模型機的微指令設計3</p><p>  2.3同或運算的設計5</p><p>  2.4比較兩數(shù)大小的設計5</p><p><b>  3系統(tǒng)實現(xiàn)7</b></p><p>  3.1同或運算的實現(xiàn)7</p>

9、;<p>  3.1.1實驗步驟7</p><p>  3.1.2程序釋義10</p><p>  3.2比較兩數(shù)大小的實現(xiàn)11</p><p>  3.2.1實驗步驟11</p><p>  3.2.2程序釋義16</p><p><b>  4總結18</b><

10、/p><p>  4.1設計體會18</p><p>  4.2系統(tǒng)改進18</p><p><b>  參考文獻19</b></p><p><b>  1系統(tǒng)分析</b></p><p><b>  1.1 設計背景</b></p>

11、<p>  一臺計算機所能執(zhí)行的各種指令集合稱為指令系統(tǒng)或指令集。一臺特定的計算機只能執(zhí)行自己指令系統(tǒng)中的指令。因此,指令系統(tǒng)就是計算機的機器語言。指令系統(tǒng)表征著計算機的基本功能和使用屬性,它是計算機系統(tǒng)設計中的核心問題。指令系統(tǒng)的設計主要括指令功能、操作類型的設計以及尋址方式和指令格式的設計。</p><p>  計算機的性能與它所設置的指令系統(tǒng)有很大的關系,指令系統(tǒng)反映了計算機的主要屬性,而指令系統(tǒng)

12、的設置又與機器的硬件結構密切相關。指令是計算機執(zhí)行某種操作的命令,而指令系統(tǒng)是一臺計算機中所有機器指令的集合。通常性能較好的計算機都設置有功能齊全、通用性強、指令豐富的指令系統(tǒng),而指令功能的實現(xiàn)需要復雜的硬件結構來支持。 </p><p>  本課程設計的模型機的指令碼為8位,根據(jù)指令類型的不同,可以有0到2個操作數(shù),指令碼的最低兩位用來選擇R0-R3寄存器。在微程序控制方式下,用指令碼作為微地址來尋址微程序存儲

13、器,找到執(zhí)行該指令的微程序。在本模型機中,一條指令最多分為四個狀態(tài)周期,一個狀態(tài)周期為一個時鐘脈沖,每個狀態(tài)周期產生不同的控制邏輯,實現(xiàn)模型機的各種功能。模型機有24位控制位以控制寄存器的輸入輸出,選擇運算器的運算功能,存儲器的讀寫。</p><p>  簡而言之,這次設計,計算機數(shù)據(jù)通路的控制將由微程序控制器來完成,CPU從內存中取出一條機器指令到指令執(zhí)行結束的一個指令周期,全部由微指令組成的序列來完成,即一條

14、機器指令對應一條微程序,一條微程序又有若干微指令組成,一條微指令的功能由24位操作信號(即控制位)實現(xiàn)。</p><p>  本設計是在DJ-CPT816計算機組成原理實驗儀和仿真軟件上進行的。</p><p>  24位控制位分別介紹如下:</p><p>  XRD:外部設備讀信號,當給出個外設的地址后,輸出此信號,從指定外設讀數(shù)據(jù)。</p>&l

15、t;p>  EMWR:程序存儲器EM寫信號。</p><p>  EMRD:程序存儲器EM讀信號。</p><p>  PCOE:將程序計數(shù)器PC的值送到地址總線ABUS上。</p><p>  EMEN:將程序存儲器EM與數(shù)據(jù)總線DBUS接通,有EMWR和EMRD決定是將DBUS數(shù)據(jù)寫入EM中,還是從EM讀出數(shù)據(jù)到DBUS。</p><p

16、>  IREN:將程序存儲器EM獨處的數(shù)據(jù)打入指令寄存器IR和微指令計數(shù)器uPC。</p><p>  EINT:中斷返回時清除中斷響應和中斷請求標志,便于下次中斷。</p><p>  ELP:PC打入允許,與指令寄存器的IR2,IR3位結合,控制程序跳轉。</p><p>  MAREN:將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址寄存器MAR。</p>

17、<p>  MAROE:將地址寄存器MAR的值送到地址總線ABUS上。</p><p>  OUTEN:將數(shù)據(jù)總線DBUS上數(shù)據(jù)送到輸出端口寄存器OUT里。</p><p>  STEN:將數(shù)據(jù)總線DBUS上數(shù)據(jù)存到堆棧寄存器里。</p><p>  RRD:讀寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。</p><p&

18、gt;  RWR:寫寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。</p><p>  CN:決定運算器是否帶進位移位,CN=1帶進位,CN=0不帶進位。</p><p>  FEN:將標志位存入ALU內部的標志寄存器。</p><p>  X2,X1,X0三位組合來譯碼選擇將數(shù)據(jù)送到DBUS上的哪個寄存器,如表1所示。</p><p

19、>  WEN:將數(shù)據(jù)總線DBUS的值打入工作寄存器W中。</p><p>  AEN:將數(shù)據(jù)總線DBUS的值打入累加器A中。</p><p>  S2,S1,S0三位組合決定ALU做何種運算,如表2所示:</p><p>  表1 選擇具體的寄存器</p><p><b>  表2 ALU運算</b></p

20、><p><b>  1.2 設計目標</b></p><p>  本次課程設計要求實現(xiàn)的機器指令如下:</p><p> ?。?)INPUT:表示輸入指令;</p><p> ?。?)OUTPUT:表示輸出指令;</p><p> ?。?)JIAN:表示減法指令;</p><p&

21、gt;  (4)CHS:表示傳送指令;</p><p> ?。?)YU:表示與運算指令;</p><p> ?。?)HUO:表示或運算指令;</p><p>  (7)FEI:表示非運算指令;</p><p> ?。?)TZH_C:表示有進位或有借位時的跳轉(轉移)指令;</p><p> ?。?)TZH_Z:表示結果

22、為零時的跳轉(轉移)指令;</p><p> ?。?0)TZH_N:表示無條件跳轉(轉移)指令。</p><p>  在實現(xiàn)同或運算和比較兩個數(shù)大小的功能時,包含了立即尋址和寄存器尋址兩種尋址方式。最后要在設計的指令系統(tǒng)基礎上,編寫程序實現(xiàn)同或運算和比較兩個數(shù)大小的功能。</p><p><b>  2系統(tǒng)設計</b></p>&

23、lt;p>  2.1 模型機的指令系統(tǒng)設計</p><p>  根據(jù)設計要求,設計出的指令應包括輸入、輸出、減、邏輯與、邏輯或、邏輯非、跳轉(轉)移這7個功能的指令,且要使用立即尋址和寄存器尋址兩種尋址方式。根據(jù)以上要求設計出的指令集如表3所示。</p><p><b>  表3 指令集</b></p><p>  2.2 模型機的微指令

24、設計</p><p>  微指令集如表4所示。</p><p><b>  表4 微指令集</b></p><p>  2.3同或運算的設計</p><p><b>  設計思路:</b></p><p>  根據(jù)同或運算的表達式A⊙B=AB+可知,輸入兩個數(shù)A和B后,分別先

25、將A和B做邏輯與運算得到一個結果,然后再分別對A和B取反后再做邏輯與運算得到一個結果,最后再將兩個結果做邏輯或運算即能得到同或運算的結果。程序流程圖如圖1所示。</p><p>  圖1 同或運算程序流程圖</p><p>  2.4比較兩數(shù)大小的設計</p><p><b>  程序設計思路:</b></p><p>

26、  將輸入的第二個數(shù)減第一個數(shù),根據(jù)標志位比較兩數(shù)的大小??梢韵仁孪纫?guī)定:若輸入的第一個數(shù)比第二個數(shù)小,則輸出結果是1,轉換為十六進制數(shù)就是01H;若輸入的第一個數(shù)和第二個數(shù)相等,則結果輸出是0,轉換為十六進制數(shù)就是00H;若輸入的第一個數(shù)比第二個數(shù)大,則結果是-1,由于負數(shù)在計算機中已補碼形式表示,所以轉換為十六進制數(shù)就是FFH。程序流程圖如圖2所示。</p><p>  圖2 比較兩個數(shù)的大小程序流程圖<

27、;/p><p><b>  3系統(tǒng)實現(xiàn)</b></p><p>  3.1同或運算的實現(xiàn)</p><p><b>  3.1.1實驗步驟</b></p><p>  (1)按照系統(tǒng)分析中得到的指令集,在DJ-CPT816實驗軟件中新建指令系統(tǒng),保存為TH.mac文件,指令系統(tǒng)建立并保存后會生成TH.mi

28、c文件。</p><p> ?。?)在DJ-CPT816實驗軟件中新建名為TH.asm文件,輸入以下程序:</p><p><b>  INPUT</b></p><p><b>  CHS R0,A</b></p><p><b>  INPUT</b></p>

29、<p><b>  CHS R1,A</b></p><p><b>  YU A,R0</b></p><p><b>  CHS R2,A</b></p><p><b>  CHS A,R0</b></p><p><b>  

30、FEI A</b></p><p><b>  CHS R3,A</b></p><p><b>  CHS A,R1</b></p><p><b>  FEI A</b></p><p><b>  YU A,R3</b></p>

31、;<p><b>  HUO A,R2</b></p><p><b>  OUTPUT</b></p><p>  (3)將程序保存為TH.asm文件,再匯編成機器碼,調試窗口會顯示出程序、機器碼、反匯編指令,如圖3所示。</p><p><b>  圖3 調試窗口</b></p

32、><p><b>  (4)實驗測試</b></p><p><b>  第1組測試數(shù)據(jù):</b></p><p>  第一次置K23—K16為10000001,即輸入的數(shù)據(jù)是81H,如圖4所示。</p><p>  圖4 第一次置K23—K16為10000001</p><p>

33、;  第二次置K23—K16為10000001,即輸入的數(shù)據(jù)是81H,如圖5所示。</p><p>  圖5 第二次置K23—K16為10000001</p><p>  輸出的結果是FF,如圖6所示。</p><p><b>  圖6 輸出結果FF</b></p><p><b>  第2組測試數(shù)據(jù):<

34、/b></p><p>  第一次置K23—K16為10011001,即輸入的數(shù)據(jù)是99H,如圖7所示。</p><p>  圖7 第一次置K23—K16為10011001</p><p>  第二次置K23—K16為11010011,即輸入的數(shù)據(jù)是D3H,如圖8所示。</p><p>  圖8 第二次置K23—K16為11010011

35、</p><p>  輸出的結果是B5,如圖9所示。</p><p><b>  圖9 輸出結果B5</b></p><p><b>  3.1.2程序釋義</b></p><p>  _FETCH_;程序開始執(zhí)行一條取指的微指令,讀入程序第一條指令</p><p>  I

36、NPUT;將第一個數(shù)輸入A</p><p>  CHS R0,A;將A中的內容傳送到R0中</p><p>  INPUT;將第二個數(shù)輸入A</p><p>  CHS R1,A;將A中的內容傳送到R1中</p><p>  YU A,R0;將第一個數(shù)與第二個數(shù)做邏輯與運算并把結果保存到A中</p><p&g

37、t;  CHS R2,A;將A中的內容傳送到R2中</p><p>  CHS A,R0;將R0中的內容傳送到A中</p><p>  FEI A;將A中的內容做邏輯非運算并把結果保存到A中</p><p>  CHS R3,A;將A中的內容傳送到R3中保存</p><p>  CHS A,R1;將R1中的內容傳送到A中</

38、p><p>  FEI A;將A中的內容做邏輯非運算并把結果保存到A中</p><p>  YU A,R3;將A中的內容和R3中的內容做邏輯與運算并把結果保存到A中</p><p>  HUO A,R2;將A中的內容和R2中的內容做邏輯或運算并把結果保存到A中</p><p>  OUTPUT;輸出結果</p><p

39、>  3.2比較兩數(shù)大小的實現(xiàn)</p><p><b>  3.2.1實驗步驟</b></p><p> ?。?)按照系統(tǒng)分析中得到的指令集,在DJ-CPT816實驗軟件中新建指令系統(tǒng),保存為DX.mac文件,指令系統(tǒng)建立并保存后會生成DX.mic文件。</p><p> ?。?)在DJ-CPT816實驗軟件中新建名為DX.asm文件,輸

40、入以下程序:</p><p><b>  INPUT</b></p><p><b>  CHS R0,A</b></p><p><b>  INPUT</b></p><p><b>  JIAN A,R0</b></p><p&g

41、t;  TZH_C LOOP2</p><p>  TZH_Z LOOP1</p><p><b>  CHS A,#1H</b></p><p><b>  OUTPUT</b></p><p><b>  TZH_N 12H</b></p><p>

42、<b>  LOOP1:</b></p><p><b>  OUTPUT</b></p><p><b>  TZH_N 12H</b></p><p><b>  LOOP2:</b></p><p>  CHS A,#OFFH</p>

43、<p><b>  OUTPUT</b></p><p> ?。?)將程序保存為DX.asm文件,再匯編成機器碼,調試窗口會顯示出程序、機器碼、反匯編指令,如圖10所示。</p><p><b>  圖10 調試窗口</b></p><p><b> ?。?)實驗測試</b></p&g

44、t;<p><b>  第1組測試數(shù)據(jù):</b></p><p>  第一次置K23—K16為00000001,即輸入的數(shù)據(jù)是01H,如圖11所示。</p><p>  圖11 第一次置K23—K16為00000001</p><p>  第二次置K23—K16為00000010,即輸入的數(shù)據(jù)是02H,如圖12所示。</p&

45、gt;<p>  圖12 第二次置K23—K16為00000010</p><p>  輸出的結果是01,如圖13所示。</p><p>  圖13 輸出結果01</p><p><b>  第2組測試數(shù)據(jù):</b></p><p>  第一次置K23—K16為00000001,即輸入的數(shù)據(jù)是01H,如圖1

46、4所示。</p><p>  圖14 第一次置K23—K16為00000001</p><p>  第二次置K23—K16為00000001,即輸入的數(shù)據(jù)是01H,如圖15所示。</p><p>  圖15 第二次置K23—K16為00000001</p><p>  輸出的結果是00,如圖16所示。</p><p>

47、  圖16 輸出結果00</p><p><b>  第3組測試數(shù)據(jù):</b></p><p>  第一次置K23—K16為00000010,即輸入的數(shù)據(jù)是02H,如圖17所示。</p><p>  圖17 第一次置K23—K16為00000010</p><p>  第二次置K23—K16為00000001,即輸入的數(shù)

48、據(jù)是01H,如圖18所示。</p><p>  圖18 第二次置K23—K16為00000001</p><p>  輸出的結果是FF,如圖19所示。</p><p>  圖19 輸出結果FF</p><p><b>  3.2.2程序釋義</b></p><p>  _FETCH_;程序開

49、始執(zhí)行一條取指的微指令,讀入程序第一條指令</p><p>  INPUT;將第一個數(shù)輸入A</p><p>  CHS R0,A;將A中的內容傳送到R0中</p><p>  INPUT;將第二個數(shù)輸入A</p><p>  JIAN A,R0;將A-R0結果保存到A中</p><p> 

50、 TZH_C LOOP2;如果產生借位就跳轉到LOOP2</p><p>  TZH_Z LOOP1;如果零標志為有效就跳轉到LOOP1</p><p>  CHS A,#1H;如果上述條件都不滿足將1傳送到A中</p><p>  OUTPUT ;輸出01</p><p>  TZH_N 12H;程序結束&

51、lt;/p><p><b>  LOOP1:</b></p><p>  OUTPUT ;輸出00</p><p>  TZH_N 12H;程序結束</p><p><b>  LOOP2:</b></p><p>  CHS A,#OFFH;

52、將FF輸入A</p><p>  OUTPUT ;輸出FF</p><p><b>  4總結</b></p><p><b>  4.1設計體會</b></p><p>  從準備、收集資料、開始設計系統(tǒng),經(jīng)過了許多的問題和困難。在老師和同組同學的幫助和共同努力下,一一解決了在設計

53、過程遇到的各種問題。</p><p>  計算機工作的原理是極其的復雜,把一條程序源碼進行編譯,生成機器碼,錄入CPU,然后將其分為若干條指令,再把這若干條指令分為若干條微指令,再把這若干條微程序,最后才通過取指、執(zhí)行,實現(xiàn)程序的功能。在設計中我們必須要把計算機工作的原理一一搞明白,才能設計出自己的一套微指令系統(tǒng)。</p><p>  通過本次的課程設計,更深的確了解了計算機工作原理,也對

54、計算機組成原理這門課程的深入學習有了一個好的開始,更為以后學習類似課程奠定了很好的基礎。</p><p><b>  4.2系統(tǒng)改進</b></p><p>  系統(tǒng)能夠實現(xiàn)基本的功能,還有很多可以改進的工作。比如,只能實現(xiàn)本次課程設計中的這一單一功能,不能實現(xiàn)其它的功能,功能太過單一不大眾化;一些指令的助記符不能一看就能明白是用來執(zhí)行什么功能,必須看注解才能明白,與

55、原系統(tǒng)相比不是很明確。在系統(tǒng)中還有許多我們現(xiàn)在還沒能發(fā)現(xiàn)的一些隱患,也是我們要進行改進的。這些問題我們會在今后的工作、學習中一一進行處理。</p><p><b>  參考文獻</b></p><p>  [1]李敬兆.8086/8088和基于ARM核匯編語言程序設計.合肥:中國科學技術大學出版社,2008</p><p>  [2]蔣本珊.計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論