日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二十三、中断(控制计算机硬件,避免使用0000:0000-0000:03FF内存地址)

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二十三、中断(控制计算机硬件,避免使用0000:0000-0000:03FF内存地址) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、中斷(運行過程中出現的各種特殊信息的處理程序)

?? ?中斷信息:CPU在執行指令的同時,檢測到CPU外部或內部發送過來的一種特殊信息。

2、內中斷(比如除法溢出,用1000除以1,8位寄存器放不下1000,于是溢出自動中斷,由其內部中斷)

?? ?CPU在執行指令的時候,其內部由于某種原因所發出的中斷信息。
?? ?計算機用中斷類型碼(字節型數據00-FF)來標識中斷信息的來源(解釋中斷嗎,打印相應錯誤信息)。(比如除法溢出信息)

3、中斷處理程序(比如除法溢出,用1000除以1,8位寄存器放不下1000,于是溢出自動中斷)

?? ?CPU用于自動處理中斷信息的程序。

4、中斷向量表(各個中斷信息入口地址,CPU發現中斷后自動尋找向量表,然后找到對應的處理中斷信息)

?? ?中斷處理程序的入口地址列表。

?? ?中斷向量表在計算機啟動后,將256個中斷源所對應的中斷處理程序的入口地址存放到內存地址0000:0000到0000:03FF的單元中。
?? ?每個表項存放一個向量,占用兩個字,分別存放入口地址的段地址與偏移地址,高地址存放段地址,低地址存放偏移地址

5、BIOS中斷例程(控制計算機硬件,計算機硬件安裝

?? ?BIOS中斷例程由計算機硬件在啟動后自動安裝到中斷向量表中。

? ? BIOS中斷表:https://blog.csdn.net/u012206617/article/details/86720455

;當前光標位置輸出8個'C' assume cs:code,ds:data,ss:stack data segmentdw 256 dup (0H) data endsstack segmentdw 256 dup (0H) stack endscode segment start:mov ah,09H ;詳細查看BIOS中斷表mov al,'c'mov bh,0Hmov bl,07Hmov cx,08Hint 10Hmov ax,4c00Hint 21H code ends end start

6、DOS中斷例程(控制計算機硬件,計算機操作系統安裝

?? ?DOS中斷例程由Dos操作系統在計算機啟動后自動安裝到中斷向量表中。

assume cs:code,ds:data,ss:stack data segmentdw 'china os$' data endsstack segmentdw 256 dup (0H) stack endscode segment start:mov ax,data ;輸出設備上輸出'china os'mov ds,axmov dx,0Hmov ah,09Hint 21Hmov ax,4c00Hint 21H code ends end start

?

?

BIOS(實模式)的中斷向量表如下:

80x86

I/O ADDR

INT TYPE(16進制)

FUNCTION

00 ~ 03

0

除法溢出中斷

04 ~ 07

1

單步(用于DEBUG)

08 ~ 0B

2

非屏蔽中斷(NMI)

0C ~ 0F

3

斷點中斷(用于DEBUG)

10 ~ 13

4

溢出中斷

14 ~ 17

5

打印屏幕

18 ~ 1F

6/7

保留

8259主片

I/O ADDR

INT TYPE(16進制)

FUNCTION

20 ~ 23

8

定時器(IRQ0)

24 ~ 27

9

鍵盤(IRQ1)

28 ~ 2B

A

彩色/圖形(IRQ2)

2C ~ 2F

B

串行通信COM2(IRQ3)

30 ~ 33

C

串行通信COM1(IRQ4)

34 ~ 37

D

LPT2控制器中斷(IRQ5)

38 ~ 3B

E

磁盤控制器中斷(IRQ6)

3C ~ 3F

F

LPT1控制器中斷(IRQ7)

BIOS

I/O ADDR

INT TYPE(16進制)

FUNCTION

40 ~43

10

視頻顯示 I/O

44 ~ 47

11

設備檢驗

48 ~ 4B

12

測定存儲器容量

4C ~ 4F

13

磁盤 I/O

50 ~ 53

14

RS-232?串行口?I/O

54 ~ 57

15

系統描述表指針

58 ~ 5B

16

鍵盤 I/O

5C ~ 5F

17

打印機 I/O

60 ~ 63

18

ROM BASIC 入口代碼

64 ~ 67

19

引導裝入程序

68 ~ 6B

1A

日時鐘

提供用戶中斷

I/O ADDR

INT TYPE(16進制)

FUNCTION

6C ~ 6F

1B

Ctrl - Break 控制的軟中斷

70 ~ 73

1C

定時器控制的軟中斷

74 ~ 77

1D

視頻參數塊

78 ~ 7B

1E

軟盤參數塊

7C ~ 7F

1F

圖形字符擴展碼

在DOS系統(實模式)下,從0x20開始,用于操作系統本身。

DOS

I/O ADDR

INT TYPE(16進制)

FUNCTION

80 ~ 83

20

DOS 中斷返回

84 ~ 87

21

DOS 系統功能調用

88 ~ 8B

22

程序中止時 DOS 返回地址(用戶不能直接調用)

8C ~ 8F

23

Ctrl - Break 處理地址(用戶不能直接調用)

90 ~ 93

24

嚴重錯誤處理(用戶不能直接調用)

94 ~ 97

25

絕對磁盤讀功能

98 ~ 9B

26

絕對磁盤寫功能

9C ~ 9F

27

終止并駐留程序

A0 ~ A3

28

DOS安全使用

A4 ~ A7

29

快速寫字符

A8 ~ AB

2A

Microsoft 網絡接口

B8 ~ BB

2E

基本 SHELL 程序裝入

BC ~ BF

2F

多路服務中斷

CC ~ CF

33

鼠標中斷

104 ~ 107

41

硬盤參數塊

118 ~ 11B

46

第二硬盤參數塊

11C ~ 3FF

47 ~ FF

BASIC 中斷

保護模式

在Linux下(保護模式),沒有使用BIOS設置的中斷向量表,0x00 ~ 0x1F是CPU保護模式下的默認中斷向量,而0x20開始,都是被Linux系統重新設置的。

X86占用的中斷向量表如下:

向量號

助記符

說明

類型

錯誤號

產生源

0

#DE

除出錯

故障

DIV或IDIV指令。

1

#DB

調試

故障/陷阱

任何代碼或數據引用,或是INT 1指令。

2

--

NMI中斷

中斷

非屏蔽外部中斷。

3

#BP

斷點

陷阱

INT 3指令。

4

#OF

溢出

陷阱

INTO指令。

5

#BR

邊界范圍超出

故障

BOUND指令。

6

#UD

無效操作碼

故障

UD2指令或保留的操作碼。

7

#NM

設備不存在

故障

浮點或WAIT/FWAIT指令。

8

#DF

雙重錯誤

異常終止

有(0)

任何可產生異常、NMI或INTR的指令。

9

--

協處理器段超越(保留)

故障

浮點指令

10

#TS

無效的任務狀態段TSS

故障

任務交換或訪問TSS

11

#NP

段不存在

故障

加載段寄存器或訪問系統段

12

#SS

堆棧段錯誤

故障

堆棧操作或SS寄存器加載

13

#GP

一般保護錯誤

故障

任何內存引用和其他保護檢查

14

#PF

頁面錯誤

故障

任何內存引用

15

--

(intel保留)

?

?

16

#MF

x87 FPU浮點錯誤

故障

?

17

#AC

對齊檢查

故障

有(0)

對內存中任何數據的引用。

18

#MC

機器檢查

異常終止

錯誤碼(若有)和產生源與CPU類型有關。

19

#XF

SIMD浮點異常

故障

?

Linux自己設置的中斷以后再添加。

?

?

?

總結

以上是生活随笔為你收集整理的二十三、中断(控制计算机硬件,避免使用0000:0000-0000:03FF内存地址)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。