基於COP2019的定點無符號數乘法的實現

2022-10-21 02:36:08 字數 3021 閱讀 9002

課程設計報告

課程設計名稱:計算機組成原理課程設計

課程設計題目:基於cop2000的定點無符號數乘

法的實現

第1章總體設計方案1

1.1 設計原理1

1.2 設計思路1

1.3 設計環境1

第2章詳細設計方案3

2.1 總體方案的設計3

2.1.1總體方案的邏輯圖4

2.2 功能模組的設計5

2.2.1 資料輸入模組的設計6

2.2.2 乘數末位判斷與移位模組的設計6

2.2.3 乘積結果顯示模組的設計7

第3章程式除錯與結果測試9

3.1 程式除錯9

3.2 結果測試9

參考文獻11

附錄(源程式12

第1章總體設計方案

1.1 設計原理

兩個8位無符號數相乘,所乘結果是16位,採用原碼一位乘,在計算時,用乘數暫存器的最低位來控制部分積是否與被乘數相加,然後右移部分積和乘數,同時乘數暫存器接收部分積右移出來的一位,完成運算後,部分積暫存器儲存乘積的高位部分,乘數暫存器中儲存乘積的低位部分。

1.2 設計思路

被乘數與乘數都是8位,所以相乘的結果是16位。每個暫存器的範圍是8位,所以乘積的結果用兩個暫存器來儲存表示。

實驗開始時將實驗資料從實驗箱的開關輸入到r0、r1、r2、r3四個暫存器中,部分積存放在r0,8位乘數放在r1,8位被乘數放在r2,r3控制乘數與被乘數都是8位數。在計算時,首先判斷乘數末位上的值是1還是0,決定被乘數是否與部分積相加,然後判斷部分積的末位,因為右移時部分積的末位會溢位,乘數右移時要接收由部分積溢位來的數,所以根據判斷來決定乘數右移後的高位是1還是0。運算結束時16位乘積結果的高8位從r0調出,低8位從r1調出,兩個資料組成最終結果。

1.3 設計環境

本實驗採用cop2000實驗箱和cop2000**軟體。

在cop2000試驗儀上實現程式設計,所應用的程式語言為組合語言。在偉福試驗儀中有相關的模型機指令集分為幾大類:算術運算指令、邏輯運算指令、移位指令、資料傳輸指令、跳轉指令、中斷返回指令、輸入輸出指令。

此為cop2000計算機組成原理實驗軟體截圖:

圖 1.1 cop2000計算機組成原理整合除錯軟體

第2章詳細設計方案

2.1 總體方案的設計

(1)初始化以及輸入乘數與被乘數

首先是將部分積初始化送到暫存器r0中, 乘數放入r1, 被乘數放入r2。直接進行到位址loop 部分。

(2)運算過程

首先從乘數最低位開始判斷,將r1放於暫存器a 中並和立即數#01h相與,此時可以判斷乘數最低位是0或1。基於語句jz next,當前面的判斷結果是0,跳轉到位址next ;否則順序執行程式。

跳轉到next ,即當程式乘數最低位為0時,將r0不變;順序執行程式,即當乘數最低位為1時,將r0與r2相加,判斷最低位是0還是1,當判斷結果是0,跳轉到next1,否則順序執行程式,所得到的結果送到暫存器r0中,存入資料後無條件跳轉到next2,判斷是否是最後一位。

然後進行移位操作。在移位前需要考慮r0的最低位是0或1,因為部分積移到的數值也是結果的部分,就是儲存在結果低位的部分,也就是暫存器r1中,所以要保留移掉部分, 此時判斷r0最低位。利用語句jz next1,當前面的判斷結果是0,標誌位為1,跳轉到位址next1;否則順序執行程式。

當部分積最低位是1時,右移r0,進行儲存;當部分積最低位是0時,右移r0、r1,進行儲存。

每次迴圈結束都要進入結果輸出部分jz next3。

(3)顯示乘積的結果

最後迴圈控制程式結束。因為乘法的結果是16位,而此時16位結果的高八位存放在r0,低八位存放於r1。顯示結果為r0顯示的資料加上r1顯示的資料。

2.1.1總體方案的邏輯圖

圖2.1 總體方案的邏輯圖

如上邏輯框圖2.1中所示,r0、r1、r2均是8位的暫存器,其中r0存放部分積的原碼,r1存放乘數的原碼,r2存放被乘數的原碼。移位和加控制電路受r1和r0的末位控制(當r1末位是1時,r0和r2相加;當r1末位是0時,r0不變。

當r0末位是0時,r0和r1右移一位;當r0末位是1時,r0右移一位,r1右移一位加10000000)。然後將r0右移移8位加上r1,得到乘法16位結果。

2.2 功能模組的設計

圖2.2 功能模組設計圖

2.2.1 資料輸入模組的設計

將部分積初始化送到暫存器r0中, 乘數放入r1, 被乘數放入r2。應用mov r0,#iih 語句將三個資料分別輸入到r0、r1、r2。

2.2.2 乘數末位判斷與移位模組的設計

(1) 功能描述

判斷乘數末位是否為1,應用mov a,r1和and a,#01語句,將乘數與1相與,得出末位結果。然後利用jz next,如果結果是0,則跳轉到位址next ;否則順序執行程式。

(1)next ,即當乘數最低位為0時,r0不變;

(2)順序執行程式,即當乘數最低位為1時,將r0與r2相加,所得到的結果送到暫存器r0中。

在移位前需要考慮r0的最低位是0或1,因為部分積移到的數值也是結果的部分,就是儲存在結果低位的部分,也就是暫存器r1中,所以要保留移掉部分, 此時判斷r0最低位。先應用mov a,r0和and a,#01,將部分積與1相與,得出末位結果。 利用jz next1,當前面的結果是0,跳轉到位址next1;否則順序執行程式。

當部分積最低位是1時,右移r0, 右移r1加10000000,進行儲存;當部分積最低位是0時,右移r0、r1,進行儲存。

(2)流程圖

圖2.3 乘數末位判斷與移位流程圖

2.2.3 乘積結果顯示模組的設計

(1)功能描述

因為乘法的結果是16位,而此時16位結果的高八位存放在r0,低八位存放

於r1。顯示的結果就是r0暫存器與r1暫存器顯示的結果合在一起即為最終的結果。

(2)乘積結果顯示流程圖

圖2.4 乘積結果顯示流程圖

第3章程式除錯與結果測試

3.1 程式除錯

(1)在程式設計開始階段時候,寫資料傳送指令時寫成了mov a,00h ,本意是想將立即數0送到累加器a 中,但出現錯誤。後經查閱書籍應在資料前加#,才能將立即數送到累加器,所以指令修改為mov a,#00h。

基於window2019的apache伺服器配置

石河子大學 資訊科學與技術學院 計算機網路 課程設計報告 2013 2014學年第一學期 題目名稱 基於windows2000平台安裝配置實現 apache web伺服器 專業 電腦科學與技術 班級 電腦科學與技術11級2班 學號 2011508035 學生姓名 陶鑫 指導教師 邵聞珠 完成日期 二...

2023年基於FPGA的DDS設計版

一 實驗名稱 基於fpga的dds訊號源設計 二 技術規範 1.實驗目標 設計乙個直接數字頻率合成 dds,direct digital synthesis dds是一種新型的頻率合成技術。dds 技術是一種把一系列數字形式的訊號通過dac 轉換成模擬訊號的合成技術。dds 技術具有頻率切換時間短,...

基於TDA2019的音訊功放設計報告

院 系 名稱資訊工程學院 專業班級 09 普本電信一班 學號學生姓名 指導教師 2012年5月25日 1整體設計思路 音訊功率放大器主要由前置級 音調級 功率放大級3部分組成。前置級要求輸入阻抗高 輸出阻抗小 頻帶寬 雜訊小 音調級對輸入訊號主要起到提公升 衰減作用 功率放大級是音訊功率放大器的主要...