【发布时间】:2020-12-13 14:47:52
【问题描述】:
例如:
int $0x80
我知道它正在对目标操作数值0x80 或128 执行int 指令。而且,如果我理解正确,128 是一个系统调用,它将执行存储在eax 中的调用。不过这里vector是什么意思呢?
目标操作数指定一个从 0 到 255 的 向量,编码为 8 位无符号中间值。
为什么不在这里使用number这个词呢?这里有向量的特定含义吗(我想它与 C++ 或数学中的含义不同)。
【问题讨论】:
-
让我为您搜索一下:whatis.techtarget.com/definition/interrupt-vector。或者特别是对于 x86,历史上中断处理程序指针表被称为 IVT en.wikipedia.org/wiki/Interrupt_vector_table。保护模式使用“描述符”表,除了指针之外还有元数据。
-
至于词源,“向量”是有道理的:它是一个进入的方向,将执行发送到哪里。
-
来自 Intel 的 Basic Architecture 卷,第 6.4 节向量和中断:“IDT 中的每个中断和异常都用一个数字标识,称为向量”
标签: assembly linux-kernel x86 system-calls terminology