中断向量表,问题,在线等待

中断是发生了cpu自己修改csip,图片的是自己跳转发生中断,除法溢出中断修改ip0:0000内容,cs0:0002内容,0:0的内容是不是要进行修改 ,重要提问:

  1. 如果发生中断,cs和ip会被修改0:0处内容这里的内容是固定的吗,视频里把程序写0:200,是不是因该修改0:0内容,修改成0:200位置执行自己写的程序,还是说中断就是自己写的中断跳转

    img



看了半天,没看明白你描述的问题是什么。
给你介绍下x86 的中断
0000:0000 这个开始地址是x86中断向量表,一个向量占4个字节。x86有256个中段,总的向量占 1k 字节的内存。有些系统不需要这么多的中断向量,只保留最基础的几十个中断向量,也只保留几百字节的空间。
在x86 cpu加电执行程序时,0000:0000 这块存放向量的内存空间是没有数的,需要程序提前将中段程序的入口地址存放在向量表中。比如除法中断的程序在 1022:09ab 除法中断向量是 0,cpu的程序就要将向量0的位置写除法中断的地址。这个过程不是自动的是程序在一加电运行时通过我们写的程序写入的
0000:0000 :22,10,ab,09
中断向量表都初始化完后。ss段,sp栈指针都初始化好,中断才能自动运行。
中段程序及中断过程是不破坏0000:0000这块内存的值
这块内存不建议用户使用,是为系统中断向量保留的。

如何获取中断类型码,除法错误0获胜0:0int 3在0:12这里是自动修改成csip为0:12的段地址和偏移吗?
比如中断3,向量是 3,对应向量表地址是 3*4=12,也是 0ch,
这个0:12是存放中断程序的入口地址,中断触发后会把查这个0:12,将 cs,ip 改成0:12中存放的值,也是这个中断程序的入口地址。
假设 0000:000c 存放的值是 1234:5678
中断触发相当于
jmp 1234:5678
0000:0200h以后是安全的,可以放中断程序