中斷向量為什麼叫中斷向量?

時間 2021-05-11 23:40:52

1樓:林彬懋

「中斷向量」(interrupt vector)這麼乙個詞彙,當然是因應網際網路的發展而創造出來的。雖然說是乙個中斷服務程式的入口住址,但是「中斷」(interrupt)這麼乙個概念卻非新創,而科技上的詞彙其實在詩詞的應用上,行之有年,是曰「語言中斷處」、「意識中斷處」,甚至「詩行中斷處」,只不過,這些概念與「向量」(vector)的關係就甚難理解。

如果以「中斷向量」是「中斷向量表」(interrupt vector table)裡的陣列元素來了解,這些詩詞上的應用就一目了然了,因為乙個指向中斷服務程式的指標,之所以把這個「指標」叫作「向量」是因為「向量」可以看成是「有方向的量」,所以具有「指向」的功能,更可用來表明「向量」為「可變長陣列」;這個詮釋套入「文字敘述」與「文字詞彙」,就是指在「語言中斷處」、「意識中斷處」或「詩行中斷處」,「中斷向量」可以在其「中斷向量表」,遙指乙個文字所表達不出來的思維方向以及乙個可變可長的思想狀態。

2樓:的了哈

我們要習慣於理解中國的計算機前輩。他們當時條件不好,小時候放養,長了才對計算機感興趣,只顧著學習計算機,往往從小到大都沒有較高的漢語言文學造詣。所以他們留下來的詞語,許多需要回爐。

什麼預設,套接字。最直接的辦法就是推動漢字對電腦科學造字。詳見現在新事物越來越多,漢字是否應該加字加偏旁部首了?

- 知乎

3樓:

分情況如果題主沒學過高數/線性代數/大學物理:行,你說啥是啥,我們都按你說的叫

如果學過高數/線性代數/大學物理:你該補考了

4樓:

我在學習KL25嵌入式開發時,學到的中斷服務註冊是這樣的:

#ifdef VECTOR_029

#undef VECTOR_029

extern void isr_uart1_re(void);

#define VECTOR_029 isr_uart1_re#endif

首先將在其他地方定義為NULL的中斷向量解定義,然後宣告實際應用的中斷函式,並將中斷函式繫結到中斷向量上。

軟體上,中斷向量就是在系統中預定義的函式指標。

5樓:Jor-TR

中斷向量跟C++沒有半毛錢關係,跟處理器也沒啥關係。它跟BIOS以及作業系統有關。

1.什麼是中斷向量?

中斷向量是由BIOS程式(組合語言寫的)在計算機開機加電的時候暫時性寫入記憶體的資料,它記錄著相應中斷服務程式的位址。作用不言而喻,就是指向中斷服務程式。

注意:這個時候作業系統還處於實模式。在轉變為保護模式之前中斷向量就會被廢棄掉,而後在保護模式下作業系統用中斷描述符替代它。

2.什麼是中斷向量表?

一系列的中斷向量放一起就構成了這張表。

3.它為什麼叫中斷「向量」?

這裡的「向量」,並不是指C++裡面的標準容器「vector」,而是為了強調中斷向量的「指向」這一功能而給它起的名字。

注意:它只是乙個名字,只是乙個名字,只是乙個名字。

4.再說說中斷向量和中斷描述符的關係:

實模式下的中斷向量的作用,就相當於保護模式下的中斷描述符,都是用來指明相應中斷服務程式的位置。同樣的,中斷向量表就相當於中斷描述符表。這兩套中斷方案對應著作業系統的兩種不同模式。

注意:前面說過在開啟保護模式之前中斷向量就會被廢棄掉,而中斷描述符是開啟保護模式之後才起作用,那麼這段空白期作業系統怎麼響應中斷呢? 答案是:關中斷

6樓:

不同意 @vczh 的觀點,贊同 @王贇 Maigo 的觀點。

首先上 Jack Ganssle 和 Michael Barr 在 Embedded Systems Dictionary 中對 IV 和 IVT 的定義:

interrupt vector n.

The address of an interrupt service routine.

USAGE: This term is sometimes used incorrectly to refer to either the interrupt type or the address of the interrupt vector.

interrupt vector table n.

A table containing interrupt vectors, indexed by interrupt type, that maps interrupts and interrupt service routines. The interrupt vector table must be initialized before interrupts are enabled.

很明顯 Interrupt Vector(中斷向量)指的是中斷服務程式的位址,它不是乙個集合,那是 IVT 的意思。而 IBM 7090 (2023年)就已經有了 Interrupt 的概念,可以推斷 Interrupt Vector 可能出現的比指標概念開始流行的時間要早,所以這可能是沒有叫 Interrupt Pointer 的原因。

單詞 vector 的演化過程

而線性代數上,vector 就是有方向有長度的箭頭(姑且這麼說),而從英語發展的角度講,vector 一開始從拉丁語演化的時候,就是從 convey 的意思演化到 carrier 再演化到 vector 的,所以 vector 本身可以認為有 「從某個地方轉移到另外乙個地方」 的意思,所以取 Interrupt Vector 之名。

針對 C++ 中的 Vector,我大膽猜測一下,一開始它的意思就是線性代數上的意思,不過不強調 「方向」 而是強調 「長度」,所以 vector 就被設計成可以自由伸縮的東西,只不過後面人發現用它來當伸縮陣列用非常好,所以就當成陣列用了。

7樓:李在田

因為它爹給它起的名字就叫interrupt vector,中文直接翻譯過來就叫中斷向量,沒毛病。

乙個東西叫什麼名字,和它是幹什麼的,完全可以是正交的關係(逃

8樓:屠豬之槍

很簡單,對於CPU來說,所有中斷就是乙個向量表。這個向量表像乙個陣列一樣儲存所有中斷的服務函式的位址,觸發就查詢位址跳轉。說白了中斷向量就是個函式指標,所以叫這個名字沒什麼毛病啊。

9樓:徐遠志

vector這個詞可以翻譯成向量。乙個向量既包含數值,又包含方向。可以形象的理解為它是乙個路牌指向某個地方。

每次中斷,程式都要去看這個路牌。根據路牌指的方向到指定的中斷服務程式裡。

10樓:蒙塔基的鋼蛋兒

中斷向量表是函式指標陣列。。中斷向量是函式指標陣列裡面的元素。只不過這個陣列的位址比較特殊罷了。各家晶元不一樣。

INTC_IACKR(i) = (uint32_t)_vectors;

中斷向量:

.section .vectors, "axv"

_VLEalign 4globl _vectors

_vectorslong vector0, vector1, vector2, vector3long vector4, vector5, vector6, vector7long vector8, vector9, vector10, vector11long vector12, vector13, vector14, vector15

.......

SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;

中斷向量:

__Vectors DCD __initial_spTop of StackDCD Reset_HandlerReset HandlerDCD NMI_HandlerNMI HandlerDCD HardFault_HandlerHard Fault HandlerDCD MemManage_HandlerMPU Fault HandlerDCD BusFault_HandlerBus Fault HandlerDCD UsageFault_HandlerUsage Fault HandlerDCD 0ReservedDCD 0ReservedDCD 0ReservedDCD 0ReservedDCD SVC_HandlerSVCall HandlerDCD DebugMon_HandlerDebug Monitor HandlerDCD 0ReservedDCD PendSV_HandlerPendSV HandlerDCD SysTick_HandlerSysTick Handler

11樓:雲天明

向量啊,就是一維張量,或者說,n*1或者1*n矩陣所以,顯然,在STL之前,數學家和物理學家們早就把一維陣列叫做向量了……當然還有無窮維向量這種奇葩

而中斷向量呢,就是

vector

12樓:遠野貴樹

51微控制器程式儲存器,自0000H位址開始儲存有中斷向量,不同中斷可使得PC指標指向不同位址並開始執行。比如上電復位後pc指標指向0000H。我們一般在0000H到0003H之間寫乙個LJMP跳轉,使得程式進入正常執行狀態。

0003H位址寫跳轉,使得程式進入外部中斷0的中斷程式。

我個人傾向於認為「指標」和「向量」同意。

就是說中斷向量表儲存的中斷向量是用於PC指標跳轉到程式儲存器的不同位置,從而執行不同的功能。

確定的中斷向量有著確定的中斷入口位址,這樣在硬體上易於實現。

不管是PC機,arm核心晶元,還是簡單的51晶元,大致遵循同一套規則。

不過在寫pc端c語言程式的時候,null指標是不可訪問的。因為被系統保護。

13樓:

不知道為什麼這麼叫,以下純屬猜測:

參考:Vectored Interrupt

中斷有兩種,一種是一堆handler硬體根據中斷原因呼叫對應的,一種是只有乙個handler軟體要查詢原因的,前一種叫向量化中斷,所以這種的handler指標就被叫成中斷向量了……

中斷向量位址形成部件的具體電路實現是怎麼樣的

hexbug 很普通的數字邏輯啊。INTA作為總中斷允許 最下面是優先順序控制,高優先順序中斷訊號有效時會把後面的低優先順序訊號封掉。最上面是位址產生,由一排三態緩衝器實現,三態緩衝器有的同相有的反相,拼出了向量位址資料,當某路中斷訊號有效時 與門輸出 1 該路三態緩衝器輸出資料到資料匯流排,即該路...

為什麼向量的內積是標量,而向量的外積是向量?

Trebor 用愛因斯坦的記號可能會清晰一點。表示乙個向量與乙個一次形式的縮合,可以理解為 與 的內積。而外積則是 是兩個一次形式與全反對稱張量的縮合。它的本質其實是楔積而三維空間中,二次形式正好有 個分量,與一次形式相同。我們就可以把它們都射到 上。實際上這削弱了協變與逆變的區分,同時,也導致了 ...

為什麼兩個空間向量的向量積為法線向量?

磁気特性 某綠書委委屈屈。簡單來說,向量積可以是法線向量,但法線向量未必就是向量積。這個問題其實是 我們想量化法線,需要用向量積來表示。什麼情況下我們需要量化法線?相信對這個問題感到疑惑的人大多是從空間向量點法式方程過來的。舉個例子 有A 2,1,4 B 1,3 2 C 0,2,3 這樣三個點,根據...