匯編入門與精通教學(xué)課件_第1頁
匯編入門與精通教學(xué)課件_第2頁
匯編入門與精通教學(xué)課件_第3頁
匯編入門與精通教學(xué)課件_第4頁
匯編入門與精通教學(xué)課件_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

BIoS與D0s中斷調(diào)用概述在實(shí)際應(yīng)用中,PC機(jī)與外部設(shè)備的傳送數(shù)據(jù)大部分采用中斷方式來實(shí)現(xiàn),在主機(jī)系統(tǒng)主板上較高地址的ROM中,駐留著基本輸入/輸出系統(tǒng)(basicinput/outputsystemBIOS)的程序,它提供了系統(tǒng)加電自檢、引導(dǎo)并裝入操作系統(tǒng)、主要的I/O設(shè)備的處理程序等功能。用戶可在不必了解中斷服務(wù)程序的內(nèi)部結(jié)構(gòu)的基礎(chǔ)上來使用中斷服務(wù)程序。DOS是磁盤操作系統(tǒng),是由BIOS在開機(jī)后自動裝入內(nèi)存的,DOS中斷是建立在BIOS之上的中斷,它借用了BOS軟中斷的功能來調(diào)用系統(tǒng)的中斷服務(wù)程序。匯編語言程序設(shè)計(jì)鍵盤IO程序設(shè)計(jì)1基礎(chǔ)知識鍵盤是計(jì)算機(jī)最基本的輸入設(shè)備,鍵盤上的鍵主要分成三種基本類型鍵:字符鍵、功能鍵、組合控制鍵。(1)字符碼與掃描碼鍵盤上的每一個鍵都有一個按位置進(jìn)行的編碼掃描碼,用戶每按下一個鍵,都會產(chǎn)生一個鍵盤中斷,BIOS中的鍵盤中斷處理程序根據(jù)讀到的掃描碼就能唯一確定按下了哪個鍵。如果按下的是字符鍵,鍵盤處理程序求出對應(yīng)的ASCⅡ碼,把掃描碼和ASC碼一起存入一個BIOS定義的鍵盤緩沖區(qū)中;如果按下的不是字符鍵,就把掃描碼和一個全0字節(jié)起存入鍵盤緩沖區(qū)。匯編語言程序設(shè)計(jì)(2)鍵盤緩沖區(qū)由于所按鍵并不會馬上被用戶讀取,所以在BI0S的參數(shù)區(qū)中,定義了一個鍵盤輸入緩沖區(qū),它的位置在內(nèi)存0040:001A,結(jié)構(gòu)如下0040:001ABUFFHEADDW?;首指針0040:001CBUFFTAILDW;尾指針0040:001KBBUFFERDW16DUP(?);16個字的緩沖區(qū)0040:001KBBUFFERENDLABELWORD;尾地址匯編語言程序設(shè)計(jì)2.BIOS鍵盤功能調(diào)用BIOS提供的鍵盤中斷類型號為16H,它的中斷處理程序又分為3個功能,通過AH中的功能號來選擇(1)0號功能——從鍵盤讀入字符輸入?yún)?shù):AH=0返回結(jié)果:AH=鍵入字符的掃描碼AL=鍵入字符的ASCI碼(如按下的是字符鍵)或AL=0(如按下的是其它鍵)0號功能讀鍵盤是強(qiáng)制讀。匯編語言程序設(shè)計(jì)例:從鍵盤讀一字符,把掃描碼存到KEY1單元,ASCI碼存到KEY2單元MOV,OINT16HMOVKEYLAHMOVKEY2AL匯編語言程序設(shè)計(jì)(2)1號功能—讀鍵盤緩沖區(qū)的字符輸入?yún)?shù):AH=1返回結(jié)果:zF=0時,AH=掃描碼,AL=字符的ASCI碼或0ZF=1時表示無鍵按下,鍵盤緩沖區(qū)為空,1號功能讀鍵盤是探測讀。例如:在一程序中,加入一段指令序列,檢測是否按下了ESC鍵,如果按下,則退出程序,否則,繼續(xù)執(zhí)行程序。加入的指令序列如下:MOVAH,1;1號功能INT16HBOS的讀鍵盤緩沖區(qū)的字符JZCONT;ZF=1,無鍵按下繼續(xù)執(zhí)行程序CMPAH,OH;zF=0,有鍵按下,判是ESC鍵的掃描碼?丿EⅪIT;是ESC鍵的掃描碼退出程序CONT繼續(xù)執(zhí)行程序EXIT;退出程序匯編語言程序設(shè)計(jì)(3)2號功能——讀鍵盤狀態(tài)字節(jié)輸入?yún)?shù):AH-2返回結(jié)果:AL鍵盤狀態(tài)字節(jié)鍵盤上有一些控制鍵和狀態(tài)鍵,如Shift、Ctr1、Alt、NumLock、Scro11Ins和CapsLock等,當(dāng)按下這些鍵時,鍵盤處理程序并不返回掃描碼,而是設(shè)置鍵盤狀態(tài)字節(jié)的相應(yīng)位。鍵盤狀態(tài)字節(jié)如下圖所示1-Insert狀態(tài)已改變按下右Shift鍵1=CapsLock狀態(tài)已改變1=按下左Shift鍵1=Numlock狀態(tài)已改變1=按下Ctr1鍵1=Scro11Lock狀態(tài)已改變1=按下Alt鍵匯編語言程序設(shè)計(jì)【例1】編寫程序,當(dāng)無鍵按下時,循環(huán)等待,當(dāng)有鍵按下時,從鍵盤讀10個按鍵,并將其掃描碼和字符碼保存到內(nèi)存單元中。(1)分析1)利用INT16H的1號功能為探測讀鍵盤,當(dāng)無鍵按下時循環(huán)等待,當(dāng)有鍵按下時讀鍵2)利用INT16H的0號功能讀取10個鍵的掃描碼和字符碼并保存到內(nèi)存單元中匯編語言程序設(shè)計(jì)DATASEGMENTSTRINGDB20DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARMOVAXDATA;初始化DSMOVDS.AXL1:MOVAH,1;利用INT16H的功能1探測讀鍵盤INT16H丿ZL1;無鍵按下則循環(huán)LEASLSTRINGMOVCX.10匯編語言程序設(shè)計(jì)L2:MOVAH,0;用INT16H的功能0讀鍵盤INT16HMO∨[S]AL;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論