我看了有关调用门的资料,但我在BCB6下用CALL指令调用它老是出错.首先:CALL FWORD PTR [farcall]编译出错,说是无效的FWORD然后:我该用CALL FAR WORD PTR [farcall],编译是过了.但好象不起作用.因为用CALL指令调用调用门要...
全文
回复(10) 2004-11-22 14:17 来自版块 - 内核编程
表情
wowocock多谢回复,我想我应该找一些相关资料去看看了,有什么好资料请介绍两本? INTEL和AMD在CPU指令手册(2004-11-25 13:33)
xcdyjx多谢回复,我想我应该找一些相关资料去看看了,有什么好资料请介绍两本?(2004-11-24 17:38)
wowocock另外如果你想实现IO的话,修改IO许可位图比修改IOPL更好,这也是INTEL和AMD在CPU指令手册中的建议.(2004-11-23 16:06)
wowocock调用门的选择子是否就是它在GDT或LDT中的索引号 不错,不过从3位开始 0,1代表RPL,2位为0 从GDT中取,为1从LDT中取,另外在AMD64下所有的门都扩展为16个字节,但SELECTOR还是16位,所以计算起来有所不同,而且在AMD64下的CALLGATE中的堆...(2004-11-23 16:02)
xcdyjx下面代码在BCB5下面编译,BCB6也应该可以吧!? //--------------------------------------------------------------------------- // // 一般性测试 // void __fastca...(2004-11-23 12:03)
xcdyjx还有一个问题,我加了#pragma inline后 __asm sgdt gdt 有出现编译不过的情况 typedef struct gdtr { unsigned short Limit; unsigned short BaseLow; unsigned shor...(2004-11-23 10:08)
xcdyjx过拉,给分拉 :D(2004-11-22 22:30)
slwqw估计是BCB6的毛病:( 添加下面这行到CPP中,再编译看看 #pragma inline(2004-11-22 20:26)
xcdyjx我试了还是不行 代码: WORD ccadd[3]; //ccadd[0] = 0; //ccadd[1] = 0; ccadd[2] = (((ULONG)cg-(ULONG)BaseAddress)/sizeof(CALLGATE_DESCRIPTOR)...(2004-11-22 19:35)
slwqw下面代码在BCB5下面编译,BCB6也应该可以吧!? //--------------------------------------------------------------------------- // // 一般性测试 // void __fastca...(2004-11-22 18:14)

返回顶部