回 帖 发 新 帖 刷新版面

主题:调用中断的问题

通过汇编语言的学习,我明白了原来中断的调用和函数的调用很类似,都要用堆栈来保存与返回函数地址。但是中断的不同之处在于它要从一个固定的地址表(中断失量表)中调用中断子程序,而很多中断子程序如BIOS,都以固化在ROM中,

那么我的问题是每次启动计算机时都要先把BIOS子程序地址放入矢量表中吗???  

回复列表 (共5个回复)

沙发

我觉得你所说的固定的地址表(中断失量表)中的内容只是cs,ip,那么当调用时,就应该从cs:ip中去调用.

板凳

大哥你好像没有理解我的问题?
首先中断矢量表其实是主存中0x00000000~0x00003FFF的地址,主存中的内容不是固化的,每次启动时主存都没有内容,即使是矢量表也不例外是空值,那我的问题就是此时是否把ROM中的子程序地址放入主存中呢?

3 楼

哦.
这我不太清楚,和操作系统有关了.
资源是os分配的.
对了,你上面提到的计算机是32的?至于32位系统是不是和16的系统采取相同的策略,我没找资料考证过.
不过,我本人认为为了追求跟快的速度,启动主存,此时把ROM中的子程序地址放入你所谓的主存中是必然的.
你认为的内存,只是ram吗?内存由ram和rom,其中ram一般是dram, rom中内容被映射到ram中加以利用,这映射,就需要采用一些策略了.

4 楼

哦,主存是ram

5 楼

要在那个下面设?是在8259A芯片呢,还是什么东西!8259A的就6条指令!

我来回复

您尚未登录,请登录后再回复。点此登录或注册