乙個簡單的虛擬機器

2021-06-27 01:22:49 字數 3624 閱讀 7058

乙個簡單的虛擬機器,虛擬機器有100個字的記憶體,幾個暫存器——指令計數器、指令暫存器、操作碼暫存器、記憶體位址暫存器、累加暫存器。可以——輸入01、輸出02、載入資料到暫存器03、存放資料到記憶體04、簡單的加05減06乘07除08運算、轉移09、小於零轉移10、等於零轉移11、終止12。程式輸入完,輸入0000結束。

列印兩個數中的較大數

0120 //

輸入乙個數到記憶體20

0121 //

輸入乙個數到記憶體21

0320 //

載入記憶體20的資料到累加器

0621 //

累加器資料減去記憶體21 的資料

1007 //

如果小於零轉移到記憶體07

0220 //

輸出記憶體20的資料

1200 //終止

0221 //

輸出記憶體21的資料

1200 //終止

0000 //

輸入結束

執行 virtual machine is booting...

complete booting.

please input your program.

00 0120

01 0121

02 0320

03 0621

04 1007

05 0220

06 1200

07 0221

08 1200

09 0000

good job.

virtual machine is loading the program...

complete loading.

virtual machine is printing the program...

00 0120

01 0121

02 0320

03 0621

04 1007

05 0220

06 1200

07 0221

08 1200

complete printing.

virtual machine is running the program...

opcode address

01        20

100opcode address

01        21

200opcode address

03        20

opcode address

06        21

opcode address

10        07

opcode address

02        21

200complete running.

virtual machine is shutting...

complete shutting.

//leaf_core_test.cpp檔案

//#include 

<

iostream

>

#include 

"leaf_core_virtual_machine.hpp

"using

namespace

std;

intmain(

intargc, 

char

*argv)

cout

<<

"good job.\n

"<<

endl;

//引導程式到虛擬機器記憶體

virtual_machine.load_program(program);

//列印程式

virtual_machine.print_program();

//執行程式

virtual_machine.run_program();

//關閉虛擬機器

virtual_machine.shut();

char

ch;cout

<<

"window closing

"<<

endl;

cin>>

ch;return0;

} //leaf_core_virtual_machine.hpp檔案 //

#ifndef __leaf_core_virtual_machine_hpp__

#define

__leaf_core_virtual_machine_hpp__

class

cvirtualmachine ;

#endif

//leaf_core_virtual_machine.cpp檔案

//#include 

<

iostream

>

#include 

"leaf_core_virtual_machine.hpp

"using

namespace

std;

//初始化虛擬機器

cvirtualmachine::cvirtualmachine()

cvirtualmachine::

~cvirtualmachine()

//啟動虛擬機器

void

cvirtualmachine::boot()

//關閉虛擬機器

void

cvirtualmachine::shut()

//引導程式到虛擬機器記憶體

void

cvirtualmachine::load_program(

int*

program)

m_memory[index] 

=program[index];

cout

<<

"complete loading.\n

"<<

endl;}//

列印程式

void

cvirtualmachine::print_program()

cout

<<

"complete printing.\n

"<<

endl;}//

執行程式

void

cvirtualmachine::run_program()

break

;case

const_branch_zero:

if(m_accumulator==0

) break

;default

:break;}

cout

<<

endl;

//取出指令

m_instruction_register 

=m_memory[m_instruction_counter

++];

//指令解碼

m_opcode 

=m_instruction_register

/100

;m_address 

=m_instruction_register

%100;}

cout

<<

"complete running.\n

"<<

endl;

}

虛擬機器啟動的乙個Bat檔案 啟動虛擬機器 bat

rem rem 1.首先實現的是視窗隱藏.rem 2.接下來是服務的啟動,同時倘若服務並沒有安裝則進行安裝 因為發現好多的install.bat中並不能真正把所需服務安裝上,所以就把虛擬機器啟動.bat的功能稍微強化一下了 rem 3.啟動vmware.exe之後,cmd隱藏於後台等待,並且以10秒...

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

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

簡單理解虛擬機器

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