計組實驗 cpu與記憶體的訪問(物件導向思想實現)

2021-10-04 20:40:00 字數 1936 閱讀 1406

實驗目的:掌握cpu對儲存器進行訪問的基本操作步驟;了解用軟體模擬計算機硬體結構的基本方法;了解物件導向設計方法在軟體開發活動中的應用。

實驗任務:用c++程式語言和物件導向程式設計方法,編寫程式,模擬實現cpu按位址對主存進行讀寫操作的過程。

程式功能:採用物件導向程式設計方法,編寫c++程式,模擬cpu按位址對主存單元進行讀寫操作的過程。

使用者能夠進行的操作:

(1)對主存指定單元的寫入操作;

(2)對主存指定單元的讀出操作;

(3)在成批顯示主存所有單元的資料。

模組結構:

computer.h 用於宣告所有的型別、類和介面

computer.cpp 用於定義函式體內部**

main.cpp 用於測試**的正確性

要求

程式設計應能模擬cpu訪問儲存器的過程。如:

寫記憶體的操作應該包含如下過程:(step1)修改資料暫存器dr,(step2)設位址暫存器ar,(step3)將資料暫存器dr中的資料寫入指定記憶體單元。

讀記憶體的操作應該包含如下過程:(step1)設位址暫存器ar,(step2)將指定記憶體單元的內容送入資料暫存器dr。

computer.h 標頭檔案

#include

typedef

char dataword;

typedef

int addressword;

#define memorysize 4096

class

memory

;class

cpu;

class

computer

;

computer.cpp

#include

#include

"computer.h"

#include

/****cpu類的宣告***/

void cpu::

setdr

(dataword dr)

void cpu::

setar

(addressword ar)

addressword cpu::

getar()

dataword cpu::

getdr()

/****memory類的宣告****/

memory::

memory()

void memory::

inputmemory

(addressword arw, dataword drw)

dataword memory::

outputmemory

(addressword arw)

/****computer類的宣告*****/

dataword computer::

readmemory

(addressword address)

void computer::

writememory

(addressword arw, dataword drw)

void computer::

displaymemoryall()

std::cout << std::endl;

}

main.cpp

#include

"computer.h"

using

namespace std;

intmain()

case2:

case3:

case4:

}}return0;

}

計組實驗二(short與int的型別轉換)

首先我們知道,short型在計算機中儲存時占用了16個bit,int型占用了32個bit,題目要求的都是有符號數 因此short 0 14位是數值位,15位是符號位 int 0 30位是數值位,31位是符號位 從short到int,我們需要將short中的0 14位存入int型的0 14位,同時將符...

CPU與記憶體的關係

至今才對cpu和記憶體有一定了解了,下面有幾個比喻的理解,很形象呦 1 例如你要吃東西時,硬碟是鍋,記憶體是碗,cpu是你,淺顯點就是這樣子了 2 例如電腦是企業,記憶體是車間,cpu是生產線,硬碟是倉庫,主機板是地基,cpu快,生產就快,記憶體大,一次處理的材料就多.所以提高機器速度有兩條路,一是...

cpu與記憶體的關係

cpu是負責運算和處理的,記憶體是交換資料的。當程式或者操作者對cpu發出指令,這些指令和資料暫存在記憶體裡,在cpu空閒時傳送給cpu,cpu處理後把結果輸出到輸出裝置上,輸出裝置就是顯示器,印表機等。在沒有顯示完之前,這些資料也儲存在記憶體裡,如果記憶體不足,那麼系統自動從硬碟上劃分一部分空間作...