intel x86 实模式中,中断地址表(也叫中断向量)位在0-03FFh,分别表示00-0ffh中断的[段:偏移]地址,比如0号中断,地址就是 0000~0003, 0000~0001表示偏移, 0002~0003表示段,若其值是12 34 56 78,那么执行0号中断时,cpu会令cs=7856h,ip=3412h,程式就由7856:3412开始.
换言之,每4个字节表示1个中断地址,8号中断的地址自然是8*4 = 32(20h),也就是地址20h~21h表示偏移,22h~23h表示段.所以
1)执行8号中断后,cs=6655h,ip=4433h
中断被触动时,cpu先把标志寄存器(flag)压栈,再分别cs和ip压栈.sp一共减了6字节,ss不变,所以
2)ss=1000h, sp=10h-6 = 0Ah
3) 中断执行后,sp栈顶(000Ah)的值分别是,ip,cs,flag,所以0Ah~0Bh = 30 00 (ip), 0Ch~0Dh = 10h 20h (cs)