'vector' 在 asm 上下文中的含义
Meaning of 'vector' in asm context
例如:
int [=11=]x80
我了解到它正在对目标操作数值 0x80
或 128
执行 int
指令。而且,如果我理解正确的话,128
是一个系统调用,它将执行存储在 eax
中的调用。但是,这里的vector
是什么意思呢?
The destination operand specifies a vector from 0 to 255, encoded as an 8-bit unsigned intermediate value.
为什么不直接用 number
这个词呢? vector 在这里有特定的含义吗(我想它与 C++ 或数学中的含义不同)。
在这种类型的低级软件上下文中,术语向量是地址列表、向量。通常基于 interrupts/exceptions。所以中断 5 的处理程序是第 5 个(好吧,第 6 个有时中断以 0 或 1 开头(通常不特定于 x86))。
所以 int 0x80 本身不是向量,但是有一个向量 table 和偏移量 0x80,其中 table 是该中断处理程序的地址。这允许固定大小的项目易于查找 table,但处理程序的大小可能会有所不同。
将此中断称为 128 并没有错,但处理程序是基于矢量 table。这是地址的另一个词。
例如:
int [=11=]x80
我了解到它正在对目标操作数值 0x80
或 128
执行 int
指令。而且,如果我理解正确的话,128
是一个系统调用,它将执行存储在 eax
中的调用。但是,这里的vector
是什么意思呢?
The destination operand specifies a vector from 0 to 255, encoded as an 8-bit unsigned intermediate value.
为什么不直接用 number
这个词呢? vector 在这里有特定的含义吗(我想它与 C++ 或数学中的含义不同)。
在这种类型的低级软件上下文中,术语向量是地址列表、向量。通常基于 interrupts/exceptions。所以中断 5 的处理程序是第 5 个(好吧,第 6 个有时中断以 0 或 1 开头(通常不特定于 x86))。
所以 int 0x80 本身不是向量,但是有一个向量 table 和偏移量 0x80,其中 table 是该中断处理程序的地址。这允许固定大小的项目易于查找 table,但处理程序的大小可能会有所不同。
将此中断称为 128 并没有错,但处理程序是基于矢量 table。这是地址的另一个词。