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
主站蜘蛛池模板: 免费激情网站| 在线看片中文字幕| 亚洲手机在线| 亚洲国产系列| 中文精品久久久久国产网址| 18禁影院亚洲专区| 亚洲成aⅴ人在线观看| 日韩在线网址| 国产在线91在线电影| 欧美日韩亚洲国产| 国产成人精品午夜视频'| 亚洲精品中文字幕无乱码| 日本精品中文字幕在线不卡| 乱人伦99久久| 日本午夜三级| 99久久精品国产综合婷婷| 国产精品久久精品| 97在线碰| 久久这里只精品国产99热8| 99精品国产高清一区二区| 97国产精品视频人人做人人爱| 欧美一级在线| 日韩国产一区二区三区无码| 国产精品一老牛影视频| 日韩无码视频专区| 国产成人一区免费观看| 国产丝袜啪啪| 久久免费成人| 99热这里只有精品免费| 日韩黄色大片免费看| 亚洲精品天堂自在久久77| 亚洲国内精品自在自线官| 亚洲欧美一区二区三区图片| AV天堂资源福利在线观看| 在线观看精品国产入口| 97久久免费视频| 亚洲中文字幕无码mv| 97国产在线播放| 久久精品亚洲中文字幕乱码| 国产精品自在拍首页视频8| www.99在线观看| 久久香蕉国产线| 婷婷色中文网| 深夜福利视频一区二区| 国产人免费人成免费视频| 亚洲人成网7777777国产| 中文字幕在线播放不卡| 青青青草国产| 亚洲视频四区| 亚洲免费福利视频| 国产精品无码AⅤ在线观看播放| 国产精品高清国产三级囯产AV| 91精品国产91久无码网站| 亚洲娇小与黑人巨大交| 91久久夜色精品国产网站| 中文字幕佐山爱一区二区免费| 精品伊人久久大香线蕉网站| 亚洲国产综合精品中文第一| 热re99久久精品国99热| 无码区日韩专区免费系列| 久久午夜夜伦鲁鲁片不卡| 国产视频a| 91精品国产自产在线观看| 国产人妖视频一区在线观看| 久久一本日韩精品中文字幕屁孩| 91麻豆精品国产91久久久久| 91青青在线视频| 亚洲最大综合网| 欧美精品色视频| 免费在线不卡视频| 午夜国产精品视频| 国产亚洲精| 精品人妻一区无码视频| 亚洲无码免费黄色网址| 噜噜噜久久| 国产亚洲欧美在线人成aaaa| 免费99精品国产自在现线| 欧美区国产区| 国产精品美女网站| 久久久久无码精品| 99这里精品| 在线观看国产小视频|