asm上下文中“ vector”的含义

问题描述

对于类似的东西

int $0x80

我知道它正在对目标操作数值int0x80执行128指令。而且,如果我理解正确,128是系统调用,它将执行存储在eax中的调用。但是,vector在这里是什么意思?

目标操作数指定从0到255的向量,编码为8位无符号中间值。

为什么不在这里使用单词number?这里的vector有特定的含义吗(我想它与C ++或数学中的含义不同)。

解决方法

在这种类型的低级软件上下文中,术语“向量”是地址,向量的列表。通常基于中断/异常。因此,中断5的处理程序是第5个处理程序(有时第6个中断是从0或1开始的(通常不特定于x86))。

所以int 0x80本身不是向量,但是有向量表,并且该表中的偏移量0x80是该中断的处理程序地址。这样可以在易于查找的表中提供固定大小的项目,但是处理程序的大小可以不同。

调用此中断128不会是不正确的,但是处理程序是基于向量表的。地址是另一个字。