官术网_书友最值得收藏!

1.2.5 軟件系統

完整的微型計算機系統包括硬件和軟件,軟件又分成系統軟件和應用軟件。系統軟件是指使用、維護和管理計算機系統的程序及其文檔,其中最重要的是操作系統。應用軟件是指解決某個問題的程序及其文檔,大到用于處理某專業領域問題的程序,小到完成一個非常具體工作的程序。

1.操作系統

操作系統(Operating System,OS)管理著系統的軟硬件資源,為用戶提供使用機器的交互界面,為程序員使用資源提供可供調用的驅動程序,為其他程序構建穩定的運行平臺。

在早期的16位IBM PC系列機和兼容機上,主要采用磁盤操作系統(Disk Operating System,DOS)。DOS是單用戶單任務操作系統,通常一個用戶一次只能運行一個程序,且只有一個用戶可以登錄使用該系統。DOS操作系統相對比較簡單,但允許程序員訪問任意資源,尤其是允許執行輸入/輸出指令。本書將在第8章介紹DOS環境的匯編語言程序設計。讀者可以使用MS-DOS啟動機器并運行于實地址方式,但建議使用Windows操作系統的模擬DOS環境。模擬DOS環境雖不是真正的DOS平臺,但兼容絕大多數DOS應用程序,同時可以借助Windows的強大功能和良好保護。

32位PC主要使用Windows或Linux操作系統,本書主要基于Windows操作系統平臺。32位Windows操作系統有多個版本,依次是Windows 98、Windows 2000、Windows XP,以及Windows 7或Windows 8等。Windows操作系統除提供圖形操作界面外,還提供控制臺環境。32位控制臺環境具有類似于DOS的外觀和操作,也是采用鍵盤直接輸入命令,所以被稱為“命令提示符”。但控制臺功能更多,例如,支持漢字輸入/輸出等。

在32位Windows窗口環境下,可以用鼠標依次單擊“開始”→“程序”→“附件”→“命令提示符”,進入32位控制臺環境;也可以在“開始”→“運行”打開的對話框中,輸入“cmd”命令進入。

打開32位控制臺窗口,實際上是執行了Windows的控制臺程序CMD.EXE。它保存于Windows文件夾的SYSTEM32子文件夾下。

32位Windows所在文件夾的SYSTEM32子文件夾下,還有一個COMMAND.COM文件,它是為了兼容16位DOS應用程序而存在的,可以說這才是一個模擬DOS環境。由于32位控制臺(CMD.EXE程序)的窗口外觀和操作都與原來的DOS操作系統類似,絕大多數人都簡單地稱之為DOS窗口,他們甚至不知道16位模擬DOS環境(COMMAND.COM程序)的存在。絕大多數情況下,標準的16位DOS應用程序都可以在32位控制臺運行,不過有些程序還是有差別的。

要打開16位模擬DOS窗口,需要在“運行”對話框中輸入COMMAND命令。DOS窗口中提示為“Microsoft(R)Windows DOS”,版權時間是1990—2001年,說明從2001年以后沒有再更新。為了避免與其他同名文件混淆,打開16位模擬DOS窗口時最好給出完整的路徑,例如,輸入“%SystemRoot%\system32\command.com”。

目前,PC通常使用64位Windows操作系統(例如Windows10、Windows11)。在64位Windows操作系統中,控制臺也是64位的,執行的程序名稱還是CMD.EXE,兼容32位應用程序。不過,64位Windows不兼容16位DOS應用程序,所以操作系統中不存在COMMAND.COM文件。運行16位DOS應用程序需要使用虛擬機軟件模擬DOS環境,例如簡單的DOSBox或者功能強大的VMware虛擬機。可以在搜索欄中輸入“cmd”,查找并執行被稱為命令提示符的控制臺程序;也可以先啟動終端程序,再打開命令提示符窗口。64位Windows操作系統常默認安裝PowerShell終端程序,其外觀和基本操作與DOS窗口、控制臺(稱為命令提示符)類似,但它比控制臺更強大,是一種跨平臺的任務自動化和配置管理框架。不過,在PowerShell終端執行當前目錄下的可執行文件,需要在文件名前加上“./”。

相對操作簡單的觸屏、圖形界面來說,字符輸入的命令行雖然單調,但卻是最基本的交互方式。由于需要理解目錄結構、文件路徑等知識,因此讀者在命令提示符的操作過程中可以更深刻地認識操作系統的文件管理機制。

2.匯編程序

支持Intel 80x86處理器的匯編程序有很多。在DOS和Windows操作系統下,最流行的是微軟公司的匯編程序MASM,Borland公司的TASM也很常用,兩者相差不大。在Linux操作系統下,標準的匯編程序是GAS,NASM也較常用。兩者相差不大,均使用Intel語法。在UNIX和Linux操作系統下,標準的匯編程序是GCC開發套件的AS,但其使用AT&T語法。而NASM則是互聯網時代較流行的匯編程序,采用與MASM類似的Intel語法,既可應用于DOS/Windows操作系統,也可應用于UNIX/Linux操作系統,還可應用于macOS X操作系統。

(1)MASM

20世紀80年代初,微軟公司推出MASM 1.0。MASM 4.0支持80286/80287處理器和協處理器;MASM 5.0支持80386/80387處理器和協處理器,并加入了簡化段定義偽指令和存儲模型偽指令,匯編和連接的速度更快。MASM 6.0是1991年推出的,支持80486處理器,它對MASM進行重新組織,并提供了許多類似高級語言的新特點。MASM 6.0之后又有一些改進,推出了MASM 6.11,利用它的免費補丁程序可以升級到MASM 6.14,MASM 6.14支持MMX Pentium、PentiumⅡ及Pentium Ⅲ指令系統。MASM 6.11是最后一個獨立發行的MASM軟件包,這以后的MASM都存在于Visual C++開發工具中,例如,本書從Visual C++ 6.0中復制出MASM 6.15,以便支持Pentium 4的SSE2指令系統。Visual C++.NET 2003中包含MASM 7.10,但沒有什么大的更新。Visual C++.NET 2005提供的MASM 8.0才支持Pentium 4的SSE3指令系統,同時還提供了一個ML64.EXE程序,用于支持64位指令系統。

(2)NASM

NASM(Netwide Assembler)是一款基于80x86處理器的匯編軟件,可用于編寫16位DOS、32位和64位Windows、Linux的匯編語言程序。1996年10月,NASM發布其最初始版本0.90;2007年11月發布NASM 2.00版,擴展了對64位操作系統的支持;2022年12月,提供NASM 2.16.01穩定版。它是一款基于簡化版BSD許可證(2-clause BSD License)的開放源代碼軟件。更多NASM介紹,請參見附錄G,也可參考其網站(https://www.nasm.us/)文檔。

本書采用MASM 6.15和NASM 2.16.01,準備了匯編語言程序的控制臺環境(和模擬DOS環境)開發軟件(壓縮)包,從機工教育網站(http://www.cmpedu.com)下載后可以直接(解壓)使用(詳見1.3.4節)。

3.文件路徑

文件路徑是操作系統中一個很重要的概念,對正確使用32位控制臺環境和16位DOS環境起著關鍵作用,也有助于讀者理解Windows文件系統。

操作系統以目錄(Directory)形式管理磁盤上的文件(為了使普通用戶容易理解,Windows使用“文件夾”這個通俗的說法表示專業術語“目錄”)。當指明某個文件時,為了區別于同名的其他文件,有必要說明該文件所在分區、根目錄、各級子目錄。分區和目錄就是文件的路徑(Path),32位控制臺和DOS環境中利用向右的斜線“\”分隔各級目錄。例如,位于硬盤D分區根目錄MASM的PROGS子目錄下的文件EG0101.ASM表示如下:

文件的完整路徑稱為絕對路徑。采用這種指明文件的方法保證了唯一性,但未免有些煩瑣。所以,人們經常使用相對路徑指明文件。采用相對路徑時,首先必須明確相對的位置,即當前所在的目錄,簡稱當前目錄(Current Directory)。實際上,在閃爍的32位控制臺或DOS提示符“_”前的路徑就是當前目錄所在位置。例如,如果D分區當前目錄是根目錄下的MASM目錄,則上述EG0101.ASM文件可以如下指明:

再如,若上述PROGS為當前目錄,則MASM目錄中BIN子目錄下的ML.EXE文件可以如下指明:

這里的兩個小數點“..”表示當前目錄的上級目錄。另外,還經常使用“\”表示當前分區的根目錄,用一個小數點“.”表示當前目錄。

那么,32位控制臺和DOS環境下如何改變當前目錄呢?這就要用到內部命令CD(Change Directory)。例如,進入32位控制臺或模擬DOS環境后,可以首先鍵入分區字母加一個冒號,從而進入所需要的當前磁盤分區,然后鍵入CD命令,并用空格隔開需要進入的當前目錄,如下所示:

4.內部命令和外部命令

內部命令是32位控制臺或DOS環境本身具有的、直接支持的命令。進入32位控制臺或DOS環境后,只要鍵入其內部命令的關鍵字加上需要的參數就可以使用內部命令,例如,常用的內部命令有改變目錄命令CD、文件列表命令DIR、文件復制命令COPY、清除屏幕命令CLS、退出命令EXIT等。利用幫助命令HELP可以查看所有的內部命令及其使用方法,也可以用命令加“/?”參數查詢該命令的使用方法。

外部命令也是32位控制臺或DOS環境提供的命令,但它與其他可執行文件一樣以文件形式保存在磁盤上,存放在Windows操作系統所在目錄的SYSTEM32子目錄下。由于操作系統通常已經將該目錄列為搜索路徑,因此一般可以直接輸入文件和參數執行外部命令。例如,要使用DOS平臺的調試程序DEBUG.EXE,輸入DEBUG即可。

但是,對于沒有建立搜索路徑的其他可執行文件,或者存在多個同名的可執行文件,執行時需要先鍵入絕對路徑或相對路徑,然后鍵入文件名,再用空格分隔鍵入的參數。

如果沒有指明路徑,32位控制臺或DOS環境將在當前目錄下查找該文件。如果沒有找到該文件,則在事先設置的搜索路徑中依次查找;如果仍然沒有查找到該文件,則將顯示“'XX'不是內部或外部命令,也不是可運行的程序或批處理文件”('XX'is not recognized as an internal or external command,operable program or batch file)。使用內部命令PATH可以查看和設置當前的搜索路徑。所以,如果沒有指明路徑或者指明的路徑不正確,雖然文件存在但卻會提示沒有該文件,或者執行另外一個同名的文件。

32位控制臺和DOS都支持擴展名為EXE的可執行文件,DOS還支持擴展名為COM的可執行文件。批處理文件使用擴展名BAT,它實際上是一個純文本文件,其中編輯有依次執行的可執行文件名,在32位控制臺和DOS環境下都可以應用。如果執行外部命令時沒有鍵入擴展名,則32位控制臺或DOS環境依次以BAT、COM和EXE為擴展名,先查找到哪個文件就執行哪個文件。

5.進入MASM目錄的批處理文件

執行32位控制臺和DOS環境的應用程序時,通常需要首先進入相應環境,然后在提示符下輸入可執行文件名。在32位Windows窗口環境下,直接運行(例如雙擊啟動)32位控制臺和DOS環境的程序,常會在屏幕上一閃而過。

為了操作方便,可以在Windows窗口環境中建立32位控制臺或DOS環境,并將MASM目錄(假設在D:\MASM下)作為當前目錄的批處理文件WIN32.BAT,文件內容可以是:

第1行命令表示不顯示下面各行信息。第2行命令設置當前WIN32.BAT文件所在的D分區MASM目錄和其下的BIN子目錄作為搜索路徑,以便實際操作時能夠執行這些目錄下的文件。第3行命令執行操作系統所在根目錄提供的CMD.EXE進入32位控制臺窗口(并將該文件所在的目錄作為當前目錄)。第4行命令表示以后輸入的命令將顯示出來。

利用同樣的方法可以建立快速進入模擬DOS,并將MASM目錄作為當前目錄的批處理文件DOS16.BAT,只需將上述文件中的CMD.EXE修改為COMMAND.COM。

如果希望打開的32位控制臺或16位模擬DOS窗口能夠使用鼠標操作,可以在其左上角單擊展開控制菜單,選擇其中的“屬性”命令,在“選項”選項卡中,使“編輯選項”區中的“快速編輯模式”為不選中狀態。這樣,在這個命令行窗口,運行支持鼠標操作的程序時就可以使用鼠標操作了。

主站蜘蛛池模板: 赤壁市| 遵义县| 溆浦县| 五大连池市| 清水县| 陵川县| 承德市| 宝应县| 德令哈市| 雷波县| 香格里拉县| 盐津县| 西丰县| 宜春市| 嘉祥县| 靖安县| 普安县| 巧家县| 阿克苏市| 庆云县| 瑞昌市| 商河县| 廊坊市| 泸水县| 舞钢市| 太原市| 卫辉市| 定州市| 赫章县| 勃利县| 乌恰县| 沂南县| 邢台市| 远安县| 碌曲县| 临安市| 高台县| 宜黄县| 云南省| 桐庐县| 巨野县|