天天看點

Virtual PC 下 DOS7.1 中 運作.com檔案相關問題

剛才在進入dos後,編譯.asm檔案獲得.com檔案,但系統會出現:emm386:unrecoverable privileged operation error #n9.press enter to reboot.. 的顯示。

     在網上一搜有如下解決辦法:

               在dos下修改config.sys檔案,将emm386那一行去掉即可。

                (修改檔案的指令為:edit config.sys)

       但基本上沒人更深究其原因,于是我有搜了一下config.sys相關内容發現原來如此:

     Config.sys是用來在啟動時加載系統檔案的。

加載檔案的指令是Device,比如每個Config.sys裡都有一條指令 Device=Himem.sys ,這就是加載Himem.sys的指令。

另外,這裡還可以設定Dos指令占用空間,比如DOS=High,UMB

可以設定臨時檔案夾,比如 Set Temp=c:/Temp

而且Config.sys和Autoexec.bat相結合,還可以制作多模式啟動菜單。

一些在config.sys中經常用到的配置項目如下:

1、FILES=數字

表示可同時打開的檔案數,一般可選擇20到50,需要注意的是,如果把FILES的值設得過大會占用過多的基本記憶體。系統預設為FILES=8。

2、BUFFERS=數字

表示設定磁盤緩沖區的數目,通常設定為20-30左右。預設值一般為15。磁盤緩沖區是一塊記憶體區,用于存儲從磁盤讀入的資料或存儲寫到磁盤的資料。

3、DEVICE和DEVICEHIGH

用于加載一些記憶體駐留程式,用于管理裝置。比如記憶體管理程式和光驅驅動程式等。如:

DEVICE=C:\DOS\HIMEM.SYS

DEVICE=C:\DOS\EMM386.EXE RAM

DEVICEHIGH=C:\CDROM\CDROM.SYS

DEVICEHIGH與DEVICE的不同是前者将程式加載入高端記憶體。

4、HIMEM.SYS和EMM386.EXE

DOS隻能直接使用640KB的記憶體,即基本記憶體,必須依靠其他記憶體管理程式來使用更多的記憶體,這兩條指令就是最常用的記憶體管理程式。

其中640KB到1MB之間的記憶體被稱為高端記憶體,是系統保留使用的。1MB以上的記憶體成為擴充記憶體,HIMEM.SYS就是負責管理擴充記憶體的。

EMM386.EXE負責管理高端記憶體并在擴充記憶體中模拟擴充記憶體供某些軟體使用。

是以為了使用更多的記憶體,配置檔案中應有以下指令。

DEVICE=C:\DOS\HIMEM.SYS

DEVICE=C:\DOS\EMM386.EXE RAM

需要注意的是:EMM386.EXE必須要求先安裝HIMEM.SYS,因而必須確定安裝HIMEM.SYS的配置指令在EMM386.EXE之前。

5、DOS=HIGH,UMB

一般情況下,需要CONFIG.SYS檔案加入這條指令,這樣會将DOS的系統檔案移入高端記憶體,空出更多的基本記憶體給其他軟體使用。需要注意的是,如果沒有安裝EMM386.EXE,UMB,那麼這條指令将是無效的。

下是一個典型的CONFIG.SYS檔案内容:

DEVICE=C:\DOS\HIMEM.SYS (加載himem,擴充記憶體管理器)

DEVICE=C:\DOS\EMM386.EXE NOEMS (高端記憶體并入擴充記憶體的工具)

BUFFERS=15,0          (緩沖區數目)

FILES=50            (同時打開的檔案數)

DOS=UMB            (系統把DOS本身放在什麼地方)

LASTDRIVE=Z          (驅動器盤符最大可以用大哪個)

DOS=HIGH                         

DEVICEHIGH=C:\DOS\ATAPI_CD.SYS /D:MSCD000 /I:0 (加載光驅驅動程式。)

STACKS=9,256

此外,在CONFIG中還可以配置菜單式多重任務選擇的配置,用于不同任務的選擇,比如玩遊戲、設定虛拟磁盤等,不過在這些應用在目前已經不常用了,這裡就不多做介紹了。

一個小小的錯誤背後居然有如此之豐富的内容,值得深思。