組合語言第三版(王爽著) 第12章 內終中斷

2021-10-01 11:26:34 字數 2521 閱讀 1656

中斷資訊。中斷的意思是指,cpu不再接著向下執行,而是轉去處理這個特殊資訊

當cpu內部由下面情況發生的時候,將產生相應的中斷資訊。(中斷型別碼表示中斷的**

1.除法錯誤,中斷型別碼0

2.單步執行,中斷型別碼1

3.into,中斷型別碼4

4.int 後面跟的是中斷型別碼

用來處理中斷資訊的程式被稱為被稱為中斷處理程式

中斷型別碼的作用就是用來定位中斷處理程式

我們如何根據8位中斷型別碼知道中斷處理程式的段位址和偏移位址呢

中斷向量表,就是中斷處理程式入口位址的列表。

中斷向量表在記憶體中儲存,其中存放著256個中斷源所對應的中斷處理程式的入口

cpu只要知道了中斷型別碼,就可以將中斷型別碼作為中斷向量表的表項號,定位相應的表項,從而得到中斷處理程式的入口位址

記憶體中0000:0000-0000:03ff這1024個位元組中存放著中斷向量表

入口位址包括段位址和偏移位址,所以乙個表項佔兩個位元組,高位址存放段位址,低位址存放偏移位址。

1.0070:018b

2.4n 4n+2

1.用中斷型別碼找到中斷向量,並用它設定cs和ip,這個工作是由cpu的硬體自動完成的。這個過程稱為中斷過程

中斷過程如下:

(1)取得中斷型別碼n;

(2)tf=0,if=0

(3)push cs

(4)push ip

(5)ip = n4 cs=n4+2

在最後一步完成之後,cpu開始執行由程式設計師編寫的中斷處理程式。

由於cpu隨時都可能檢測到中斷資訊,也就是說,cpu隨時都可能執行中斷處理程式,所以中斷處理程式必須一直儲存在記憶體某段空間中。

中斷處理程式的編寫方法:

1.儲存用到的暫存器

2.處理中斷

3.恢復用到的暫存器

4.用iret返回

iret的作用

pop ip

pop cs

popf

只有當某段程式的入口位址放入中斷向量表的n號表項中,才能成為中斷處理程式。

0:200-0:2ff存放中斷處理程式

assume cs:code

code segment

start:mov ax,cs

mov ds,ax

mov si,offset do

mov ax,0

mov es,ax

mov di,200h

;設定源位址和目的位址

mov cx,offset d0end-offset d0

cldrep movsb

設定中斷向量表

mov ax,4c00h

int 21h

do0:顯示字串

mov ax,4c00h

int 21h

do0end:nop

code ends

end start

因為do0程式隨時可能被執行,而它要用到字串overflow!,所以該字串也應該放在一段不會被覆蓋的空間中。

正確的程式如下:

assume cs:code

code segment

start:mov ax,cs

mov ds,ax

mov si,offset do0

mov ax,0

mov es,ax

mov di,200h

mov cx,offset do0end-offset do0

cldrep movsb

;安裝do0

設定中斷向量表

mov ax,4c00h

int 21h

do0:jmp short do0start

db "overflow!"

do0start:mov ax,cs

mov ds,ax

mov si,202h

mov ax,0b800h

mov es,ax

mov di,12160+362

mov cx,9

s:mov al,[si]

mov es:[di],al

inc si

add di,2

loop s

mov ax,4c00h

int 21h

do0end:nop

code ends

end start

mov ax,0

mov es,ax

mov word ptr es:[0],200h

mov word ptr es:[2],0

debug中t命令的作用

實現單步跟蹤程式的執行過程

將設定ss:sp的指令連續存放

《組合語言》(第三版)王爽著 預備

預備 1.2.十進位制 位的概念 數軸表示數字的方式 3.二進位制 4.十進位制轉換成二進位制 5.十進位制快速轉換成二進位制 6.十六進製制 7.十進位制轉換成十六進製制 8.十進位制快速轉換成十六進製制 9.十六進製制和二進位制之間快速互相轉換 10.反過來思考的方式 組合語言是一門低階語言,與...

組合語言 (王爽著第三版)實驗二

實驗前要求我們將書本p74的程式段按理論分析,將結果進行填空。之後用debug,將該程式段寫入記憶體,逐條執行之後,根據指令執行後的實際執行的結果填空如下。mov ax,0021 mov ax ffff mov ds ax mov ax 2200 mov ss ax mov sp 0100 mov ...

組合語言第三版(王爽著) 第11章 標誌暫存器

標誌暫存器的作用 用來儲存相關指令的某些執行結果 用來為cpu執行相關指令提供行為依據 用來控制cpu的相關工作方式 其中儲存的資訊通暢被稱為程式狀態字 psw 簡稱flag flag 和其他暫存器不一樣,其他暫存器是用來存放資料的,都是整個暫存器具有乙個含義。而flag暫存器是按位起作用的。也就是...