999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

探討Windows環境下80×86匯編程序教學中的幾個問題

2016-03-22 13:52:53劉俊
電腦知識與技術 2016年2期
關鍵詞:進程程序計算機

劉俊

摘要:為了幫助學生更好學習掌握80×86匯編語言,必須解決在Windows環境下如何運行匯編程序。該文以實現軟中斷、中斷實現磁盤讀寫為例,分析了在Windows操作系統上如何仿真PC/XT計算機的邏輯過程,揭示了PC/XT計算機工作機理。

關鍵字:80×86;Windows操作系統;PC/XT仿真;DOS中斷

中圖分類號:G642 文獻標識碼:A 文章編號: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

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

安裝Windows系統的現代計算機,它對計算機的軟、硬件進行管理,對每個加載的作業,通過進程來感知、管理、調度,使各運行的作業并發執行,系統對進駐內存的各作業通過段、頁方式分配內存,各作業都處于用戶態,系統通過接受事件來觸發事件的處理過程。

1 Windows系統對8086計算機的模擬

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

在匯編語言開發環境中編寫的8086指令集的匯編源程序,在執行或調試時,首先打開cmd.exe進程,Windows系統對cmd.exe進程設置好執行環境,這個執行環境就是Windows系統對8086的模擬環境,編譯、連接好的可執行代碼作為該環境的程序數據。也可以說,當前計算機的CPU不直接執*.exe的可執行代碼,CPU執行的是cmd.exe進程提供的程序數據,即cmd.exe進程是匯編程序生成的可執行代碼的“代理”,實現Windows環境下對匯編程序生成的可執行文件的執行,同時,該平臺又將CPU輸出的結果,轉化為8086方式顯示。

2 匯編語言開發環境中的中斷調用

2.1 PC/XT計算機中斷的功能及調用過程

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

2.2 Windows環境下的中斷問題分析

在安裝Windows系統的現代計算機中,安裝面向8086/8088指令集的編程開發環境,編程中對中斷的調用也是直接用中斷指令完成,那么,中斷程序是何時加載的?中斷向量表存放何處?

顯然,匯編語言開發環境顯然不承擔要完成中斷功能的前期任務,因為它的工作由四部分組成:編輯是實現源碼的錄入、編輯、保存等功能;編譯完成偽指令的轉換、指令助字符到機器碼的轉換;連接將目標代碼連接成可執行程序;執行和調試是將可執行代碼作為作業提交給Windows操作系統,調試是將執行中間結果顯示給用戶,便于用戶診斷。

Windows操作系統啟動時也加載了DOS模塊這些內容?這樣的推論不正確,原因很簡單:Windows操作系統,對內存的管理分為核心態和用戶態,既然是虛擬8086的工作環境,系統是將8086工作環境作為用戶態來管理的,用戶態的進程僅在加載時將PID裝入內存,也就不存在系統啟動時加載DOS模塊的可能。

2.3 開發環境中的中斷調用對硬盤的影響

其外,DOS軟中斷INT 26H 功能是對絕對磁盤寫,通過該中斷調用能否在寫入時,將原盤號:扇區中的數據覆蓋?如果能,則編寫程序破壞操作系統存放在磁盤上的數據,就能起到破壞系統的功能。顯然是不能的!為什么?

3 Windows系統對8086物理地址和中斷的仿真過程

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

4 中斷程序設計的啟示

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

同樣,在匯編程序開發環境中,通過DOS的INT 26H調用,實現對磁盤的寫功能是在cmd.exe進程能夠完成權限范圍內,由于cmd.exe進程是個用戶進程,對磁盤操作要通過系統進程完成,我們看到的磁盤讀、寫是cmd.exe進程從硬盤中申請的一塊空間,模擬了盤號、扇區的狀態。因此,不會造成破壞磁盤中隨意讀、寫數據的功能。

5 總結

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

參考文獻:

[1] 馮博琴,吳寧.微型計算機原理與接口技術》[M].清華大學出版社,2011.

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

[3] 李華貴,李鵬. 微機原理與接口技術[M]. 北京:電子工業出版社,2010.

[4] 錢曉捷. 微機原理與接口技術[M]. 北京:機械工業出版社,2008.

[5] 馬興錄,等. 32位微機原理與接口技術[M]. 北京:化學工業出版社,2009.

猜你喜歡
進程程序計算機
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Fresnel衍射的計算機模擬演示
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 午夜a级毛片| 久久久精品无码一区二区三区| 成色7777精品在线| 亚洲综合精品香蕉久久网| 美臀人妻中出中文字幕在线| 欧美成人区| 亚洲香蕉久久| 日韩在线永久免费播放| 尤物在线观看乱码| 色呦呦手机在线精品| 亚洲区视频在线观看| 少妇精品在线| 午夜国产不卡在线观看视频| 91久久青青草原精品国产| 91网站国产| 香蕉视频在线观看www| 久久精品66| 国产日韩精品欧美一区灰| 中文字幕欧美日韩| 高清色本在线www| 四虎影视库国产精品一区| 中文字幕久久亚洲一区| 中文字幕久久波多野结衣| 中国美女**毛片录像在线| 三上悠亚一区二区| 丁香五月婷婷激情基地| 亚洲全网成人资源在线观看| 亚洲免费三区| 中文字幕亚洲另类天堂| 久久青草免费91观看| 米奇精品一区二区三区| 国产91在线|日本| 国产成人高清精品免费5388| 国产情精品嫩草影院88av| 亚洲第一成年网| 久草青青在线视频| 最新亚洲av女人的天堂| 欧美精品成人一区二区在线观看| 午夜国产小视频| 欧美啪啪精品| 日本亚洲欧美在线| 亚洲系列中文字幕一区二区| 欧美日韩国产在线人成app| 亚洲成在线观看 | 久久精品国产一区二区小说| 日韩第九页| 国产精品永久免费嫩草研究院| 亚洲黄色高清| 毛片免费观看视频| 天天婬欲婬香婬色婬视频播放| 日韩黄色精品| 国产91无码福利在线| 色综合狠狠操| 一本久道久综合久久鬼色| 久草美女视频| 成人在线欧美| 午夜日b视频| 国产自在线拍| 国产精品网址在线观看你懂的| 97se亚洲| 91在线丝袜| 亚洲精品人成网线在线| www.日韩三级| 草草影院国产第一页| 国产成人1024精品| 久久一本日韩精品中文字幕屁孩| 黄色片中文字幕| 日韩小视频在线播放| 欧美日韩在线亚洲国产人| 激情网址在线观看| 成人午夜天| 日本五区在线不卡精品| 夜精品a一区二区三区| 福利在线一区| 色综合天天娱乐综合网| 亚洲日韩精品欧美中文字幕| 凹凸国产分类在线观看| 波多野结衣在线se| 91成人在线观看视频| av无码一区二区三区在线| 色婷婷狠狠干| 久久综合九色综合97网|