C語言寫個簡單的虛擬機器

2021-10-06 14:35:23 字數 3758 閱讀 7401

偽**:

暫存器用變數表示 記憶體用陣列表示

定義巨集定義為操作碼功能

1.資料定義

2.列印功能

3.錯誤判斷

1.資料定義

3.錯誤判斷

main函式

whlie

}whlie

輸入do(操作碼不等於43)

#define _crt_secure_no_warnings

#include

#include

#define number 100

#define flag -9999

/*操作碼*/

#define read 10

#define writhe 11

#define load 20

#define store 21

/*算術操作*/

#define add 30

#define subtract 31

#define divide 32

#define multiply 33

/*控制操作*/

#define branch 40

#define branchneg 41

#define branchzero 42

#define halt 43

//列印函式

void

printfmycomputer

(int memory,

int accumulator,

int instructioncounter,

int instructionregister,

int operationcode,

int operand)

;bool errzero

(int operand)

;//除0錯誤判斷

bool erraccumulator

(int accumulator)

;//累加器溢位錯誤

bool erroroperandcode

(int operationcode)

;//操作碼錯誤

intmain()

;//記憶體初始化

/*暫存器值初始化*/

int accumulator =0;

//累積器

int instructioncounter =0;

//記憶體編號

int instructionregister =0;

//『word'

int operationcode =0;

//操作碼

int operand =0;

//位置編號

/*列印記憶體*/

printfmycomputer

(memory, accumulator, instructioncounter,

instructionregister, operationcode, operand)

;printf

("\n\n");

dowhile

(memory[instructioncounter]

>

9999

|| memory[instructioncounter]

<

-9999);

++instructioncounter;

}while

(memory[instructioncounter-1]

!=flag)

;//記憶體結束

printf

("\n*****程式開始執行****\n");

instructioncounter =0;

do operand = instructionregister %

100;

switch

(operationcode)

else

case31:

accumulator -

= memory[operand];if

(erraccumulator

(accumulator)

== true)

else

case32:

if(errzero

(operand)

== true)

accumulator /

= memory[operand];if

(erraccumulator

(accumulator)==0

)else

case33:

accumulator *

= memory[operand];if

(erraccumulator

(accumulator)==0

)else

case40:

instructioncounter = operand;

printfmycomputer

(memory, accumulator, instructioncounter,

instructionregister, operationcode, operand)

;break

;case41:

if(accumulator <0)

else

case42:

if(accumulator ==0)

else

case43:

instructioncounter = operand;

printf

("done\n");

printfmycomputer

(memory, accumulator, instructioncounter,

instructionregister, operationcode, operand)

;break

;default

:printf

("輸入錯誤,請重新輸入!\n");

printfmycomputer

(memory, accumulator, instructioncounter,

instructionregister, operationcode, operand)

;break;}

}while

(operationcode !=43)

;return0;

}void

printfmycomputer

(int memory,

int accumulator,

int instructioncounter,

int instructionregister,

int operationcode,

int operand)

printf

("%+05d "

, memory[i]);

}printf

("\n\n");

}//判斷操作碼

bool erroroperandcode

(int operationcode)

return false;

}bool erraccumulator

(int accumulator)

return false;

}//判斷0

虛擬機器 虛擬機器軟體的簡單認識

1.vmware workstation 適用平台 linux和windows 學校實驗機上用的此軟體 搭載的是redhat 9的虛擬機器 直接匯入vmx檔案就可以使用 具體步驟參考 雖然此步驟掩飾的是windows的虛擬機器但是和linux的虛擬機器開啟步驟一樣 都是使用vmx檔案直接匯入的 2....

簡單理解虛擬機器

拋開那些高大上名詞,虛擬機器就是乙個可以在你的主作業系統裡 另起爐灶 的 另一台 電腦 另一台電腦 可以不同於你當前主作業系統,你可以安裝成linux,dos,windows,mac os x 等。安裝虛擬機器的軟體 目前有很多種 parallels desktop vmware virtualbo...

虛擬機器簡單命令

虛擬機器配置 linxe 檔案系統 根目錄 boot 系統核心與啟動目錄 root root使用者目錄 home 普通使用者根目錄 home username 普通使用者主目錄 etc 使用者配置檔案 bin sbin 可執行應用程式與系統程式 dev 裝置檔案目錄 etc init.d 啟動描述檔...