首页
社区
课程
招聘
[求助]LDTR怎么取呢?
发表于: 2012-10-19 22:12 4339

[求助]LDTR怎么取呢?

2012-10-19 22:12
4339
GDTR View_GDTR()
{
	GDTR gdtr = { 0 , 0 };
	_asm sgdt gdtr;
	return gdtr;
}

GDTR可以取得出来,但是LDTR的内容取出来的选择子每一位都是0?????

typedef struct _LDTR{
	unsigned short Ti:1;
	unsigned short Index:13;
} LDTR, *PLDTR;

	LDTR locLDTR = {0};
	_asm sldt locLDTR;

[COLOR="Red"]locLDTR.Index = 0????????!![/COLOR]
[COLOR="Blue"]locLDTR.Ti = 0????????!!![/COLOR]
??????????????????。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
哦买噶地呀...难道基础点的问题都没人愿意回答呀-.-
2012-10-19 22:36
0
雪    币: 297
活跃值: (265)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
3
#include "stdafx.h"
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
        char idtr[6]={0};
    char gdtr[6]={0};
        SetThreadAffinityMask(GetCurrentThread(),1);
    __asm
        {
                sidt idtr
                sgdt gdtr
        }
        printf("idt limit is %.4x,base is %.8x\n",*(unsigned short *)idtr,*(unsigned int *)(idtr+2));
        printf("gdt limit is %.4x,base is %.8x\n",*(unsigned short *)gdtr,*(unsigned int *)(gdtr+2));
        SetThreadAffinityMask(GetCurrentThread(),2);
        __asm
        {
                sidt idtr
                sgdt gdtr
        }
        printf("idt limit is %.4x,base is %.8x\n",*(unsigned short *)idtr,*(unsigned int *)(idtr+2));
        printf("gdt limit is %.4x,base is %.8x\n",*(unsigned short *)gdtr,*(unsigned int *)(gdtr+2));
        return 0;
}
2012-10-20 09:52
0
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=evilor;1110740]#include "stdafx.h"
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
        char idtr[6]={0};
    char gdtr[6]={0};
        SetThreadAffinityM...[/QUOTE]

木有LDT的么。
2012-10-20 12:48
0
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
莫非我写的每个程序都是用的GDT共享段??完全没有使用LDT???。。。。。
2012-10-20 12:50
0
游客
登录 | 注册 方可回帖
返回
//