• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    探討Windows環(huán)境下80×86匯編程序教學(xué)中的幾個(gè)問(wèn)題

    2016-03-22 13:52:53劉俊
    電腦知識(shí)與技術(shù) 2016年2期
    關(guān)鍵詞:磁盤調(diào)用中斷

    劉俊

    摘要:為了幫助學(xué)生更好學(xué)習(xí)掌握80×86匯編語(yǔ)言,必須解決在Windows環(huán)境下如何運(yùn)行匯編程序。該文以實(shí)現(xiàn)軟中斷、中斷實(shí)現(xiàn)磁盤讀寫為例,分析了在Windows操作系統(tǒng)上如何仿真PC/XT計(jì)算機(jī)的邏輯過(guò)程,揭示了PC/XT計(jì)算機(jī)工作機(jī)理。

    關(guān)鍵字:80×86;Windows操作系統(tǒng);PC/XT仿真;DOS中斷

    中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)02-0109-02

    Abstract: To help students to learn 80×86 assembly language better, measure must be considered about how to run assembly program in windows operating system. The paper analyses logic process of PC/XT computer based on windows system by realizing computer soft interruption and disk reading and writing. It reveals working mechanism of PC/XT computer.

    Key words: 80×86; windows operating system; PC/XT simulation; DOS interrupt

    目前,《微型計(jì)算機(jī)原理與接口技術(shù)》是高等院校開設(shè)的主干基礎(chǔ)課程之一,多數(shù)教材中的內(nèi)容圍繞8086/8088芯片的指令系統(tǒng)來(lái)闡述計(jì)算機(jī)的工作原理。開設(shè)的匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)也是對(duì)該指令集中指令應(yīng)用的實(shí)驗(yàn)。然而,隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,計(jì)算機(jī)的硬件系統(tǒng)和軟件系統(tǒng)都發(fā)生了巨大變化,現(xiàn)代任何一臺(tái)計(jì)算機(jī)都不是當(dāng)初8086為CPU的IBM PC/XT,不僅CPU內(nèi)的環(huán)境發(fā)生了巨大變化,CPU外的硬件也發(fā)生了巨大變化,但是,8086/8088指令組成的匯編程序一樣能在現(xiàn)代計(jì)算機(jī)中執(zhí)行,且匯編程序通過(guò)DOS中斷、BIOS中斷仍能實(shí)現(xiàn)人機(jī)交互、磁盤讀寫等功能。這給教、學(xué)兩方面都帶來(lái)諸多疑問(wèn),屢清Windows環(huán)境下8086匯編程序在現(xiàn)代計(jì)算機(jī)中的執(zhí)行邏輯,無(wú)疑是教學(xué)中必須面對(duì)的問(wèn)題。

    安裝Windows系統(tǒng)的現(xiàn)代計(jì)算機(jī),它對(duì)計(jì)算機(jī)的軟、硬件進(jìn)行管理,對(duì)每個(gè)加載的作業(yè),通過(guò)進(jìn)程來(lái)感知、管理、調(diào)度,使各運(yùn)行的作業(yè)并發(fā)執(zhí)行,系統(tǒng)對(duì)進(jìn)駐內(nèi)存的各作業(yè)通過(guò)段、頁(yè)方式分配內(nèi)存,各作業(yè)都處于用戶態(tài),系統(tǒng)通過(guò)接受事件來(lái)觸發(fā)事件的處理過(guò)程。

    1 Windows系統(tǒng)對(duì)8086計(jì)算機(jī)的模擬

    在安裝了匯編語(yǔ)言開發(fā)環(huán)境的Windows系統(tǒng)中,8086指令組成的源程序通過(guò)編譯、連接后生成*.exe可執(zhí)行文件。這些可執(zhí)行文件,無(wú)論是運(yùn)行還是調(diào)試都與在一臺(tái)8086為CPU芯片的計(jì)算機(jī)上運(yùn)行一樣,調(diào)試時(shí)看到的物理地址和教材中講解的PC/XT計(jì)算機(jī)工作時(shí)完全相同。眾所周知,以8086為芯片的PC/XT計(jì)算機(jī)工作在實(shí)地址方式,在PC/XT計(jì)算機(jī)上調(diào)試運(yùn)行的8086匯編程序,在調(diào)試界面中看到的物理地址,就是指令、數(shù)據(jù)存放的內(nèi)存編址的實(shí)際位置。而Windows操作系統(tǒng)對(duì)內(nèi)存的管理是段、頁(yè)式管理,即動(dòng)態(tài)分配內(nèi)存,調(diào)試中,界面顯示的“物理地址”不是計(jì)算機(jī)內(nèi)存編址的實(shí)際位置,給換句話來(lái)說(shuō),在Windows系統(tǒng)中,模擬仿真了8086計(jì)算機(jī)的工作情況。經(jīng)測(cè)試分析,發(fā)現(xiàn)Windows系統(tǒng)對(duì)8086的仿真是通過(guò)Windows系統(tǒng)自帶的附件程序完成的。在Windows系統(tǒng)安裝完成后,系統(tǒng)附件界面有一些程序,其中包含名稱為 “命令提示符”的軟件,其路經(jīng)為“Windows的開始菜單→程序→附件→命令提示符”,該軟件又稱CMD方式。在測(cè)試中發(fā)現(xiàn):在執(zhí)行或調(diào)試匯編程序時(shí),任務(wù)管理器的進(jìn)程標(biāo)簽頁(yè)自動(dòng)打開cmd.exe進(jìn)程(如圖1所示),而通過(guò)點(diǎn)擊Windows的開始菜單→程序→附件→命令提示符,同樣打開cmd.exe進(jìn)程。

    在匯編語(yǔ)言開發(fā)環(huán)境中編寫的8086指令集的匯編源程序,在執(zhí)行或調(diào)試時(shí),首先打開cmd.exe進(jìn)程,Windows系統(tǒng)對(duì)cmd.exe進(jìn)程設(shè)置好執(zhí)行環(huán)境,這個(gè)執(zhí)行環(huán)境就是Windows系統(tǒng)對(duì)8086的模擬環(huán)境,編譯、連接好的可執(zhí)行代碼作為該環(huán)境的程序數(shù)據(jù)。也可以說(shuō),當(dāng)前計(jì)算機(jī)的CPU不直接執(zhí)*.exe的可執(zhí)行代碼,CPU執(zhí)行的是cmd.exe進(jìn)程提供的程序數(shù)據(jù),即cmd.exe進(jìn)程是匯編程序生成的可執(zhí)行代碼的“代理”,實(shí)現(xiàn)Windows環(huán)境下對(duì)匯編程序生成的可執(zhí)行文件的執(zhí)行,同時(shí),該平臺(tái)又將CPU輸出的結(jié)果,轉(zhuǎn)化為8086方式顯示。

    2 匯編語(yǔ)言開發(fā)環(huán)境中的中斷調(diào)用

    2.1 PC/XT計(jì)算機(jī)中斷的功能及調(diào)用過(guò)程

    在教材中,為了匯編語(yǔ)言設(shè)計(jì)的程序能夠有交互界面與磁盤讀寫功能,都加入了中斷調(diào)用的功能,常用的DOS中斷調(diào)用INT 21H,提供了設(shè)置不同的功能號(hào),實(shí)現(xiàn)鍵盤輸入、顯示器輸出、磁盤讀寫及文件、目錄的建立和刪除等和輸入、輸出相關(guān)的功能。在匯編程序開發(fā)環(huán)境中,實(shí)現(xiàn)程序的交互界面與磁盤讀寫功能,是通過(guò)中斷指令,完成對(duì)中斷的子程序調(diào)用來(lái)實(shí)現(xiàn)的。DOS中斷調(diào)用的原理是:根據(jù)中斷類型號(hào)找到中斷向量表的偏移地址,取出中斷程序入口地址放入CS:IP,使CPU轉(zhuǎn)入中斷子程序執(zhí)行。完成這一調(diào)用功能的前提是需設(shè)置好中斷向量表、中斷類型號(hào)與中斷向量表偏移的關(guān)系及中斷子程序。在早期的PC/XT計(jì)算機(jī)中,啟動(dòng)計(jì)算機(jī)成功,意味著磁盤操作系統(tǒng)(DOS)加載入內(nèi)存完成,所以編程時(shí),軟中斷調(diào)用能夠?qū)崿F(xiàn)是基于啟動(dòng)時(shí)已將中斷向量表、中斷子程序加注內(nèi)存并設(shè)置好。其中BIOS中斷是系統(tǒng)引導(dǎo)時(shí),就一并進(jìn)入內(nèi)存。

    2.2 Windows環(huán)境下的中斷問(wèn)題分析

    在安裝Windows系統(tǒng)的現(xiàn)代計(jì)算機(jī)中,安裝面向8086/8088指令集的編程開發(fā)環(huán)境,編程中對(duì)中斷的調(diào)用也是直接用中斷指令完成,那么,中斷程序是何時(shí)加載的?中斷向量表存放何處?

    顯然,匯編語(yǔ)言開發(fā)環(huán)境顯然不承擔(dān)要完成中斷功能的前期任務(wù),因?yàn)樗墓ぷ饔伤牟糠纸M成:編輯是實(shí)現(xiàn)源碼的錄入、編輯、保存等功能;編譯完成偽指令的轉(zhuǎn)換、指令助字符到機(jī)器碼的轉(zhuǎn)換;連接將目標(biāo)代碼連接成可執(zhí)行程序;執(zhí)行和調(diào)試是將可執(zhí)行代碼作為作業(yè)提交給Windows操作系統(tǒng),調(diào)試是將執(zhí)行中間結(jié)果顯示給用戶,便于用戶診斷。

    Windows操作系統(tǒng)啟動(dòng)時(shí)也加載了DOS模塊這些內(nèi)容?這樣的推論不正確,原因很簡(jiǎn)單:Windows操作系統(tǒng),對(duì)內(nèi)存的管理分為核心態(tài)和用戶態(tài),既然是虛擬8086的工作環(huán)境,系統(tǒng)是將8086工作環(huán)境作為用戶態(tài)來(lái)管理的,用戶態(tài)的進(jìn)程僅在加載時(shí)將PID裝入內(nèi)存,也就不存在系統(tǒng)啟動(dòng)時(shí)加載DOS模塊的可能。

    2.3 開發(fā)環(huán)境中的中斷調(diào)用對(duì)硬盤的影響

    其外,DOS軟中斷INT 26H 功能是對(duì)絕對(duì)磁盤寫,通過(guò)該中斷調(diào)用能否在寫入時(shí),將原盤號(hào):扇區(qū)中的數(shù)據(jù)覆蓋?如果能,則編寫程序破壞操作系統(tǒng)存放在磁盤上的數(shù)據(jù),就能起到破壞系統(tǒng)的功能。顯然是不能的!為什么?

    3 Windows系統(tǒng)對(duì)8086物理地址和中斷的仿真過(guò)程

    Windows系統(tǒng)對(duì)“命令提示符”軟件是作為用戶程序管理的,Windows系統(tǒng)用進(jìn)程名“cmd.exe”標(biāo)識(shí)該軟件的加載,核心態(tài)空間存放軟件的程序控制塊(PCB),用戶態(tài)是動(dòng)態(tài)分配的內(nèi)存空間,每次加載在內(nèi)存的位置都是不一樣的。用戶編寫的匯編程序占用空間大小不同,申請(qǐng)的cmd.exe進(jìn)程上下文所需空間也不一樣(進(jìn)程標(biāo)簽中顯示的內(nèi)存空間一般指申請(qǐng)的進(jìn)程用戶空間)。Windows系統(tǒng)將cmd.exe進(jìn)程分配的內(nèi)存空間按8086方式顯示給用戶,讓用戶感覺(jué)程序的執(zhí)行似8086方式;當(dāng)有中斷調(diào)用時(shí),由cmd.exe進(jìn)程將硬盤中的DOS模塊加載到申請(qǐng)的空間中,并設(shè)置好,這樣就能滿足中斷調(diào)用的要求。

    4 中斷程序設(shè)計(jì)的啟示

    PC/XT中,中斷程序設(shè)計(jì)的一般步驟:(1)確定要使用的中斷類型號(hào);(2)保存原中斷向量;(3)設(shè)置自己的中斷向量;(4)設(shè)置中斷屏蔽字;(5)CPU開中斷;(6)恢復(fù)原中斷向量。我們?cè)O(shè)想在一個(gè)程序中設(shè)好中斷類型 60H,利用INT 35H將原中斷向量保存;再利用INT 25H將寫好的中斷子程序設(shè)到中斷類型號(hào)60H對(duì)應(yīng)的中斷向量表中,保持該中斷處于加載狀態(tài),再編寫另一個(gè)匯編程序調(diào)用INT 60H,在該程序中無(wú)法調(diào)用對(duì)應(yīng)60H中斷類型號(hào)的用戶編寫的中斷程序。原因是我們開啟了兩個(gè)cmd.exe進(jìn)程,每個(gè)cmd.exe進(jìn)程對(duì)8086的模擬是獨(dú)立的。就像不能通過(guò)一臺(tái)PC/XT訪問(wèn)另一臺(tái)PC/XT的中斷一樣。

    同樣,在匯編程序開發(fā)環(huán)境中,通過(guò)DOS的INT 26H調(diào)用,實(shí)現(xiàn)對(duì)磁盤的寫功能是在cmd.exe進(jìn)程能夠完成權(quán)限范圍內(nèi),由于cmd.exe進(jìn)程是個(gè)用戶進(jìn)程,對(duì)磁盤操作要通過(guò)系統(tǒng)進(jìn)程完成,我們看到的磁盤讀、寫是cmd.exe進(jìn)程從硬盤中申請(qǐng)的一塊空間,模擬了盤號(hào)、扇區(qū)的狀態(tài)。因此,不會(huì)造成破壞磁盤中隨意讀、寫數(shù)據(jù)的功能。

    5 總結(jié)

    總之,如果安裝的操作系統(tǒng)不包含“命令提示符”的軟件,是不能進(jìn)行8086計(jì)算機(jī)的仿真,目前流行的Windows操作系統(tǒng)中都包含該軟件,使利用8086指令集編寫的匯編程序在Windows系統(tǒng)中得以仿真執(zhí)行,掌握Windows系統(tǒng)對(duì)8086的仿真過(guò)程,屢清了程序的執(zhí)行邏輯,解答了諸多疑問(wèn)。

    參考文獻(xiàn):

    [1] 馮博琴,吳寧.微型計(jì)算機(jī)原理與接口技術(shù)》[M].清華大學(xué)出版社,2011.

    [2] 孫鐘秀.操作系統(tǒng)教程》,高等教育出版社[M].2008年

    [3] 李華貴,李鵬. 微機(jī)原理與接口技術(shù)[M]. 北京:電子工業(yè)出版社,2010.

    [4] 錢曉捷. 微機(jī)原理與接口技術(shù)[M]. 北京:機(jī)械工業(yè)出版社,2008.

    [5] 馬興錄,等. 32位微機(jī)原理與接口技術(shù)[M]. 北京:化學(xué)工業(yè)出版社,2009.

    猜你喜歡
    磁盤調(diào)用中斷
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    解決Windows磁盤簽名沖突
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    修改磁盤屬性
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    磁盤組群組及iSCSI Target設(shè)置
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    創(chuàng)建VSAN群集
    利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
    曲麻莱县| 茂名市| 虞城县| 平果县| 诸暨市| 荃湾区| 黎川县| 台中县| 曲阳县| 阳西县| 榆林市| 鄄城县| 凭祥市| 巴彦县| 蓝山县| 黔南| 罗山县| 灵璧县| 林芝县| 拜城县| 紫阳县| 类乌齐县| 利川市| 白朗县| 西昌市| 渭南市| 天全县| 玉林市| 合川市| 汤原县| 甘德县| 宝鸡市| 十堰市| 广昌县| 万荣县| 永新县| 湛江市| 穆棱市| 晋州市| 繁昌县| 玉溪市|