call far 和 jmp far

call far m6/jmp far m6

根据操作数地址,找到32位偏移和6位选择子,

根据选择子查找GDT/LDT,

看找到的是门描述符还是段描述符,(S位0,系统段或门描述符;S位1,普通段描述符)

是门描述符,忽略偏移,根据门描述符里提供的偏移和选择子,调用例程;

是段描述符,访问段去。

 

直接绝对远调用里,如果给处的是选择子是门选择子,也会直接忽略同时给出的偏移,使用门描述符中的偏移。

如 call 0x0040:0x0000c000

0x0040是门描述符的话,后边的偏移0x00004000无视

 

call far 会有特权级变化

jmp far 不会

posted @ 2020-09-11 11:58  AGB  阅读(704)  评论(0编辑  收藏  举报