亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 匯008.txt

?? 會變語言實現的一些程序
?? TXT
?? 第 1 頁 / 共 4 頁
字號:
了解的內容:輸入輸出的基本概念,中斷的基本概念,中斷源和中斷的響應過程(在其它課程中應有更高的要求),各類中斷的基本功能,能根據具體的需要找到相應的系統中斷。

掌握的內容:I/O地址和內存單元地址的編址,中斷向量表的作用,修改中斷向量表的方法,以及編寫用戶中斷服務程序的編程方法。

熟練掌握的內容:各種I/O指令的功能,引起中斷的指令和中斷返回指令,中斷的使用方法。

建議學習時間:8小時。
第8章 輸入輸出和中斷
輸入輸出功能是計算機的重要組成部分,是人—機交互功能的主要承擔者。在早期的計算機系統中,通常把輸入輸出設備或功能作為次要的部分,而把CPU作為主要研究對象。但現在隨著輸入輸出設備的日益豐富、功能要求越來越復雜,輸入輸出部分在整個計算機系統中的地位也得到了進一步提高。

本章先介紹了I/O的基本概念和I/O指令,再敘述了中斷的概念及其工作過程,并列舉出計算機系統中若干個常用的中斷及其功能。

8.1 輸入輸出的基本概念
輸入輸出是一個完整應用程序的重要組成部分,是交互式應用程序不可缺少的組成部分。

在用高級語言編程時,程序員可直接用輸入輸出語句來完成鍵盤輸入、屏幕顯示或打印輸出等需求,而無需關心這些輸入輸出語句是如何實現的,因為編譯程序會自動把這些語句轉換成相應的輸入輸出指令。但如果用匯編語言編寫程序的話,情況就不同了,因為匯編語言是與機器有關的程序設計語言,要編寫出具有輸入輸出功能的代碼段就必須清楚CPU為輸入輸出提供了哪些指令,或計算機系統提供了哪些可直接使用的功能調用。

8.1.1 I/O端口地址
I/O端口是CPU與輸入輸出設備的交換數據的場所,通過I/O端口,處理機可以接受從輸入設備輸入的信息;也可向輸出設備發送信息。在計算機系統中,為了區分各類不同的I/O端口,就用不同的數字給它們進行編號,這種對I/O端口的編號就稱為I/O端口地址。按照

每次可交換一個字節數據的端口稱為字節端口,每次可交換一個字數據的端口稱為字端口。

在Intel公司的CPU家族中,I/O端口的地址空間可達64K,即可有65536個字節端口,或32768個字端口。這些地址不是內存單元地址的一部分,不能普通的訪問內存指令來讀取其信息,而要用專門的I/O指令才能訪問它們。雖然CPU提供了很大的I/O地址空間,但目前大多數微機所用的端口地址都在0~3FFH范圍之內,其所用的I/O地址空間只占整個I/O地址空間的很小部分。表8.1列舉了幾個重要的I/O端口地址。

表8.1 幾個重要的I/O端口地址

端口地址 端口名稱 端口地址 端口名稱 
020H~023H
 中斷屏蔽寄存器
 378H~37FH
 并行口LPT2
 
040H~043H
 時針/計數器
 3B0H~3BBH
 單色顯示器端口
 
060H
 鍵盤輸入端口
 3BCH~3BFH
 并行口LPT1
 
061H
 揚聲器(0, 1位)
 3C0H~3CFH
 VGA/EGA
 
200H~20FH
 游戲控制口
 3D0H~3DFH
 CGA
 
278H~27FH
 并行口LPT3
 3F0H~3F7H
 磁盤控制器
 
2F8H~2FFH
 串行口COM2
 3F8H~3FFH
 串行口COM1
 

計算機在啟動時,BIOS程序(Basic Input/Output System)將檢查計算機系統中有哪些端口地址。當發現有串行端口地址時,BIOS就把 該端口存放在以地址40:00H開始的數據區內;當發現有并行端口地址時,BIOS會把它 存入以地址40:08H開始的數據區內。

每類端口有4個字的空間,對有二個串行口、二個并行口的計算機系統,其BIOS程序將得到如圖8.1所示的部分數據表。

圖中03F8H、02F8H、0378H和0278H分別為COM1、COM2、LPT1和LPT2的端口地址。
  

圖8.1 BIOS部分數據表
 8.1.2 I/O指令
由于I/O端口地址和內存單元地址是相互獨立的,這些端口地址不能普通的訪問內存指令來訪問其信息,所以,在CPU的指令系統中就專門設置了I/O指令來存取I/O端口的信息。按功能分類來看,I/O指令應屬于數據傳送指令。

1、輸入指令IN

輸入指令IN的一般格式如下:

IN  AL/AX, PortNo/DX

該指令的作用是從端口中讀入一個字節或字,并保存在寄存器AL或AX中。如果某輸入設備的端口地址在0~255范圍之內,那么,可在指令IN中直接給出,否則,要把該端口地址先存入寄存器DX中,然后在指令中由DX來給出其端口地址。

例如:
 
 IN AL, 60H ;從端口60H讀入一個字節到AL中 
IN AX, 20H ;把端口20H、21H按“高高低低”組成的字讀入AX 
MOV DX, 2F8H 
IN AL, DX ;從端口2F8H讀入一個字節到AL中 
IN AX, DX ;把端口2F8H、2F9H按“高高低低”組成的字讀入AX 

2、輸出指令OUT

輸出指令OUT的一般格式如下:

OUT  PortNo/DX, AL/AX

該指令的作用是把寄存器AL或AX的內容輸出到指定端口。如果某輸出設備的端口地址在0~255范圍之內,那么,可在指令OUT中直接給出,否則,要把該端口地址先存入寄存器DX中,然后在指令中由DX來給出其端口地址。

例如:
 
 OUT 61H, AL ;把AL的內容輸出到端口61H中 
OUT 20H, AX ;把AX的內容輸出到端口20H、21H中 
MOV DX, 3C0H 
OUT DX, AL ;把AL的內容輸出到端口3C0H中 
OUT DX, AX ;把AX的內容輸出到端口3C0H、3C1H中 

有關字符串的輸入輸出指令,請見5.2.11節中的介紹。
8.2 中斷
在計算機系統中,引入中斷的最初目的是為了提高系統的輸入輸出性能。隨著計算機應用的發展,中斷技術也應用到計算機系統的許多領域,如:多道程序、分時系統、實時處理、程序監視和跟蹤等領域。

8.2.1 中斷的基本概念
下面只簡單介紹與匯編語言程序設計有關的中斷知識,使本章的知識具有一定完整性。有關中斷的詳細介紹可參閱《計算機組成原理》課程中的相關章節。

1、中斷和中斷源

所謂中斷就是CPU暫停當前程序的執行,轉而執行處理緊急事務的程序,并在該事務處理完后能自動恢復執行原先程序的過程。在此,稱引起緊急事務的事件為中斷源,稱處理緊急事務的程序為中斷服務程序或中斷處理程序。 計算機系統還根據緊急事務的緊急程度,把中斷分為不同的優先級,并規定:高優先級的中斷能暫停低優先級的中斷服務程序的執行。

計算機系統有上百種可以發出中斷請求的中斷源,但最常見的中斷源是:外設的輸入輸出請求,如:鍵盤輸入引起的中斷,通信端口接受信息引起的中斷等;還有一些計算機內部的異常事件,如:0作除數、奇偶校驗錯等。

CPU在執行程序時,是否響應中斷要取決于以下三個條件能否同時滿足:

(1)、有中斷請求;
(2)、允許CPU接受中斷請求;
(3)、一條指令執行完,下一條指令還沒有開始執行。

條件(1)是響應中斷的主體。除用指令INT所引起的軟件中斷之外,其它中斷請求信號是隨機產生的,程序員是無法預見的。

程序員可用程序部分地控制條件(2)是否滿足,即可用指令STI和CLI來允許或不允許CPU響應可屏蔽的外部中斷。而對于不可屏蔽中斷和內部中斷,CPU一定會響應它們的,程序員是無控制權的。CPU一定會執行這些中斷的中斷服務程序。

2、斷向量表和中斷服務程序

中斷向量表是一個特殊的線性表,它保存著系統所有中斷服務程序的入口地址(偏移量和段地址)。在微機系統中,該向量表有256個元素(0~0FFH),每個元素占4個字節,總共1K字節,其在內存中的存儲形式及其存儲內容如圖8.2所示。

圖8.2中的“中斷偏移量”和“中斷段地址”是指該中斷服務程序入口單元的“偏移量”和“段地址”。由此不難看出:假如中斷號為n,那么,在中斷向量表中存儲該中斷處理程序的入口地址的單元地址為:4n。

表8.2說明了前16個中斷向量表中列舉了部分常用的中斷號。
 

圖8.2 中斷向量表
 

表8.2 部分常用的中斷號及其含義

中斷號 含義 中斷號 含義 
0 除法出錯 8 定時器 
1 單步 9 鍵盤 
2 非屏蔽中斷 A 未用 
3 斷點 B COM2 
4 溢出 C COM1 
5 打印屏幕 D 硬盤(并行口) 
6 未用 E 軟盤 
7 未用 F 打印機 
8.2.2 引起中斷的指令
中斷處理程序基本上是系統程序員編寫好的,是為操作系統或用戶程序服務的。為了在應用程序中使用中斷服務程序,程序員必須能夠在程序中有目的地安排中斷的發生。為此,指令系統提供了各種引起中斷的指令。

1、中斷指令INT

中斷指令INT的一般格式如下:

INT Imm

其中:立即數Imm是一個0~0FFH范圍內的整數。

指令執行的步驟:
 
 ◆、把標志寄存器壓棧,清除標志位IF和TF; 
◆、把代碼段寄存器CS的內容壓棧,并把中斷服務程序入口地址的高字部分送CS; 
◆、32位段,壓32位IP。
 

在該指令執行完后,CPU將轉去執行中斷服務程序。由于有了指令INT,程序員就能為滿足某種特殊的需要,在程序中有目的地安排中斷的發生,也就是說,該中斷不是隨機產生的,而是完全受程序控制的。

一般情況下,一個中斷可有很多不同的功能,每個功能都有一個唯一的功能號,所以,在安排中斷之前, 程序員還要決定需要該中斷的哪個功能,中斷的功能號都是由AH來確定的。有些中斷還需要其它參數,常用中斷的功能和參數如附錄3所列。

2、溢出指令INTO

當標志位OF為1時,引起中斷。該指令的格式如下:

INTO

該指令影響標志位:IF和TF。
8.2.3 中斷返回指令
當一個中斷服務程序執行完畢時,CPU將恢復被中斷的現場,返回到引起中斷的程序中。為了實現此項功能,指令系統提供了一條專用的中斷返回指令。該指令的格式如下:

IRET/IRETD

該指令執行的過程基本上是INT指令的逆過程,具體如下:
 
 ◆、從棧頂彈出內容送入IP; 
◆、再從新棧頂彈出內容送入CS; 
◆、再從新棧頂彈出內容送入標志寄存器; 

對80386及其以后的CPU,指令IRETD從棧頂彈出32位內容送入EIP。

8.2.4 中斷和子程序的比較
中斷和子程序調用之間有其相似和不同之處。它們的工作過程非常相似,即:暫停當前程序的執行,轉而執行另一程序段,當該程序段執行完時,CPU都自動恢復原程序的執行。

如圖8.3所示。
  

圖8.3 中斷和子程序調用的工作過程
 
它們的主要差異有:
 
◆、 子程序調用一定是程序員在編寫源程序時事先安排好的,是可知的,而中斷是由中斷源根據自身的需要產生的,是不可預見的(用指令INT引起的中斷除外); 
◆、 子程序調用是用CALL指令來實現的,但沒有調用中斷的指令,只有發出中斷請求的事件(指令INT是發出內部中斷信號,而不要理解為調用中斷服務程序); 
◆、 子程序的返回指令是RET,而中斷服務程序的返回指令是IRET/IRETD。 
◆、 在通常情況下,子程序是由應用系統的開發者編寫的,而中斷服務程序是由系統軟件設計者編寫的。 
8.3. 中斷功能的分類
計算機系統有上百種中斷,若按中斷的性質來劃分,則系統中的中斷可分為:可屏蔽中斷和不可屏蔽中斷。對不可屏蔽中斷,程序員不能控制它,系統肯定會立即響應的,而對于可屏蔽中斷,匯編語言程序員可以通過指令CLI和STI來控制對它們的響應。

若按中斷源來劃分,則系統中的中斷又可分為:硬件中斷和軟件中斷。對于硬件中斷,程序員不能控制它,它們基本上是隨機產生的,而對于軟件中斷,匯編語言程序員可通過指令INT和INTO來有目的安排它們的。

下面主要介紹匯編語言程序員能控制的軟件中斷的功能及其使用方法,常用的這類中斷有:DOS功能調用(INT 21H)、BIOS中斷、硬件和外設的中斷等。

圖8.4給出了程序員可使用的各類中斷之間的層次關系。
 

圖8.4 各類系統中斷之間的層次關系
 

在用戶程序中,若直接通過端口來操作硬件或外設,那么,其處理過程沒有額外的多余工作,處理速度顯然是最快的,但這樣做,無疑使用戶程序具有了很大的局限性。硬件環境的改變將直接影響程序的正常運行。

若用戶程序通過調用DOS功能來實現其所需功能,那么,應用程序與低層硬件相距較遠,操作最終的對象需要經過中間環節,處理速度肯定受到一定的損失,但這種應用程序適應性強,應用范圍廣,對硬件的依賴性最小。

由于BIOS介于DOS和具體硬件之間,所以,調用BIOS的功能是一個很好的折中方案。程序員可在以下三種情況下考慮使用BIOS的功能:

1)、BIOS提供的功能,而DOS沒有提供該功能的情況;
2)、不能利用DOS功能調用的情況(可能因為某些具體應用的限制);
3)、基于處理速度的考慮,需要繞過DOS層的情況。

綜上所述,可以歸納出如下結論:使用中斷的層次越高,它與硬件設備相關程度就越低,處理速度也就越低,但用戶程序的適用范圍較廣。反之也然。

有了上面的結論,程序員可根據應用程序的要求、對硬件環境的熟悉程度等因素來選用不同層次的中斷。
8.3.1 鍵盤輸入的中斷功能
鍵盤輸入是絕大多數程序的主要輸入方式,學習和掌握有關鍵盤輸入中斷的使用方法對編寫交互式程序是非常重要的,也能更進一步理解計算機是如何接受鍵盤輸入的。

1、鍵盤緩沖區

鍵盤緩沖區是一個先進先出的環形隊列,其所占內存區域如下:

 KBHead DW ? ;其內存地址為0000:041AH,緩沖區頭指針 
KBTail DW ? ;其內存地址為0000:041CH,緩沖區尾指針 
KBBuff DW 16 DUP(?) ;其內存地址為0000:041EH,該緩沖區的缺省長度為16個字 

與鍵盤有關的其它地址請見附錄6之鍵盤地址。

鍵盤緩沖區是一個環形隊列,其性質與《數據結構》課程中對“環形隊列”所描述的性質完全一致。雖然緩沖區的本身長度為16個字,但出于判斷“對列滿”的考慮,它最多只能保存15個鍵盤信息。當緩沖區滿時,系統將不再接受按鍵信息,而會發出“嘟”的聲音,以示要暫緩按鍵。當KBHead=KBTail時,表示無鍵盤輸入。

2、鍵盤狀態字

在計算機鍵盤上除了可輸入各種字符(字母、數字和符號等)的按鍵之外,還有一些功能鍵(如:F1、F2、…等)、控制鍵(如:Ctrl、Alt、Shift等)、雙態鍵(如:Num Lock、Caps Lock等)和特殊請求鍵(如:Print Screen、Scroll Lock等)。

鍵盤中的控制鍵和雙態鍵是非打印按鍵,它們是起控制或轉換作用的。當使用者按下控制鍵或雙態鍵時,系統要記住其所按下的按鍵。為此,在計算機系統中,特意安排的一個字來標志這些按鍵的狀態,我們稱該字為鍵盤狀態字。
8.3.2 屏幕顯示的中斷功能
顯示器是一個重要的輸出設備,它通過顯示卡與計算機系統相連。顯示器的顯示屏通常稱之為屏幕,現在常用的顯示器有14"和17",常用的顯示分辨率為800×600或1024×768等。常用的顯示卡類型為VGA、SVGA、EVGA和TVGA等,顯示卡上也都帶有大量的顯示存儲器,能快速顯示精美的圖象。

1、顯示模式

計算機系統中的顯示器都有二種顯示方式:文本顯示方式和圖形顯示方式。在DOS操作系統環境下,其默認的顯示方式為文本顯示方式,而在Windows操作系統環境下,其顯示方式是圖形顯示方式,其絕大多數操作界面是以圖形界面的窗口形式出現的。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清视频在线高清观看mv色露露十八| 久久免费视频色| 欧美一区二区精品| 国产精品嫩草影院av蜜臀| 午夜精品福利视频网站| aaa亚洲精品一二三区| 日韩欧美国产综合在线一区二区三区| 亚洲欧美综合色| 国内精品久久久久影院薰衣草| 91丝袜美腿高跟国产极品老师 | 午夜精品一区二区三区免费视频| 国内不卡的二区三区中文字幕| 欧洲色大大久久| 国产精品久久久久久久蜜臀| 激情综合网天天干| 777色狠狠一区二区三区| 亚洲人快播电影网| 国产高清视频一区| 久久亚洲一级片| 久99久精品视频免费观看| 欧美日韩国产电影| 亚洲一级二级三级| 欧日韩精品视频| 亚洲美女偷拍久久| 91香蕉视频在线| 1024成人网| 99久久精品99国产精品| 国产精品久久久一区麻豆最新章节| 国产一区二区三区黄视频 | 精品视频在线免费| 亚洲欧美日韩国产成人精品影院| 国产91丝袜在线18| 日本一区二区成人| www.在线成人| 亚洲美女屁股眼交| 欧美在线观看视频一区二区三区| 亚洲免费在线播放| 欧美日韩一区二区三区在线看 | 久久久久国产成人精品亚洲午夜 | 日韩一区二区三区在线观看| 日韩国产高清影视| 欧美不卡一区二区三区四区| 精品综合免费视频观看| 亚洲精品一区二区三区四区高清| 国内不卡的二区三区中文字幕 | 中文字幕在线免费不卡| 99久久er热在这里只有精品15| 中文字幕一区二区三| 日本高清不卡在线观看| 日韩激情一二三区| 26uuu亚洲综合色欧美| 成人午夜免费av| 夜夜精品浪潮av一区二区三区| 欧美精品亚洲一区二区在线播放| 日韩不卡一二三区| 久久久久综合网| 91亚洲资源网| 午夜精品爽啪视频| 久久久国产午夜精品| 波多野洁衣一区| 石原莉奈在线亚洲二区| 精品国产凹凸成av人导航| 成人av网址在线观看| 亚洲成人免费观看| 国产欧美精品在线观看| 欧美在线观看18| 国产麻豆日韩欧美久久| 亚洲卡通欧美制服中文| 日韩欧美高清dvd碟片| 成年人网站91| 免费成人在线影院| 亚洲免费成人av| 精品成人一区二区| 在线免费精品视频| 国产风韵犹存在线视精品| 亚洲国产综合色| 欧美激情综合网| 日韩欧美123| 色中色一区二区| 国产精品99久| 奇米色一区二区| 亚洲综合一区二区三区| 久久精品一区蜜桃臀影院| 欧美精品xxxxbbbb| 99精品视频在线观看免费| 精久久久久久久久久久| 一区二区三区不卡视频| 国产精品嫩草久久久久| 久久综合资源网| 在线不卡一区二区| 91福利精品第一导航| 国产成人aaa| 韩国v欧美v日本v亚洲v| 丝袜诱惑制服诱惑色一区在线观看| 欧美韩国一区二区| www激情久久| 精品国产一区二区精华| 欧美一级久久久久久久大片| 欧美日韩激情一区二区| 97精品超碰一区二区三区| 懂色av一区二区三区蜜臀| 久久69国产一区二区蜜臀| 视频一区视频二区中文| 一区二区三区四区蜜桃| 亚洲人亚洲人成电影网站色| 久久久国产精品午夜一区ai换脸| 精品噜噜噜噜久久久久久久久试看| 欧美精品在欧美一区二区少妇| 欧美色网站导航| 欧美色综合网站| 欧美日韩激情在线| 欧美日韩aaaaa| 91精品久久久久久久99蜜桃 | 丁香啪啪综合成人亚洲小说| 久久99精品久久久久| 免费久久精品视频| 久久国内精品自在自线400部| 奇米在线7777在线精品| 亚洲 欧美综合在线网络| 日韩精品每日更新| 青青草国产成人99久久| 久草热8精品视频在线观看| 裸体健美xxxx欧美裸体表演| 精品影视av免费| 国产成人一区在线| 91亚洲精品乱码久久久久久蜜桃 | 亚洲国产精品黑人久久久| 国产精品久久久久久户外露出| 国产精品美女久久久久久2018| 国产精品色呦呦| 亚洲女同女同女同女同女同69| 亚洲午夜久久久久久久久久久| 五月天网站亚洲| 韩国精品在线观看| www.一区二区| 欧美日本精品一区二区三区| 精品精品欲导航| 国产精品国产a| 亚洲午夜视频在线| 国内成人免费视频| 91视频一区二区三区| 欧美日韩国产一区二区三区地区| 日韩三级伦理片妻子的秘密按摩| 国产亚洲一二三区| 亚洲最新视频在线观看| 蜜臀av一区二区在线观看| 国产一区二区三区不卡在线观看| 免费在线看一区| 国产日韩精品久久久| 欧美国产97人人爽人人喊| 亚洲女同女同女同女同女同69| 日本不卡高清视频| www.亚洲人| 欧美一级片在线看| 综合婷婷亚洲小说| 青娱乐精品在线视频| www..com久久爱| 日韩一区二区视频| 亚洲三级久久久| 精品一区二区三区免费播放| 91国偷自产一区二区三区成为亚洲经典 | 成人免费在线视频观看| 男人的天堂久久精品| kk眼镜猥琐国模调教系列一区二区| 在线电影欧美成精品| 亚洲精品你懂的| 懂色av一区二区三区免费看| 777久久久精品| 伊人婷婷欧美激情| 国产成人午夜视频| 日韩亚洲欧美一区| 亚洲国产综合在线| 不卡的av在线播放| 久久蜜桃一区二区| 免费国产亚洲视频| 欧美日韩一区二区在线观看视频 | 亚洲制服丝袜一区| 成人a免费在线看| 久久众筹精品私拍模特| 日韩国产精品91| 欧美午夜电影网| 亚洲欧洲www| 国产高清成人在线| 欧美v日韩v国产v| 日韩黄色小视频| 欧美视频在线观看一区二区| 亚洲人成网站精品片在线观看| 国产精品自拍在线| 久久女同互慰一区二区三区| 美腿丝袜亚洲一区| 欧美一区二区三级| 日韩成人精品视频| 中文字幕日本不卡| 国产91在线|亚洲| 国产清纯美女被跳蛋高潮一区二区久久w| 人妖欧美一区二区| 日韩一级片在线播放| 美腿丝袜在线亚洲一区 | 欧美丝袜丝nylons| 亚洲成人免费电影|