荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: xiaoxia (我不是女生!真的不是!), 信区: Linux
标  题: Re: 帮忙分析一个小程序
发信站: 荔园晨风BBS站 (Sat Mar 16 22:04:47 2002), 转信

噢,估计是搞错了......
刚才你一问,我才想起,0x17不可能8字节对齐的。
是不是这样?0x17低8位为:00010111
低2位是特权级,第3位是表明这个选择子是到GDT还是LDT找描述符。
00010为描述符表的索引,即这个选择子指向LDT的第3项。
我记得cs是这个格式,不知道数据段选择子是不是一样?


【 在 xiaoxia (我不是女生!真的不是!) 的大作中提到: 】
: 呵呵,neck,想不到那么快就上来啦。
: 哪个$0x17是用户堆栈段选择子吗?我不太记得了。
: 那时我看时也象在这里卡了一下。
: iret执行前进程都运行在内核态,5个push是建立一个堆栈,
: 以供iret使用。你查查GDT,看看0x17指向的是不是用户堆栈段?
: 好象一般iret前内核栈是:
: eip
: cs
: flags
: esp
: ss
: 你看看是不是吧。好久没看intel的东西,也记不太清楚了。
: 【 在 autodotcom (dotcom) 的大作中提到: 】
: : linux 0.01版的main()函数做了各种init后,调用以下函数,
: : 帮忙分析一下!
: : #define move_to_user_mode() \
: : __asm__ ("movl %%esp,%%eax\n\t" \
: :         "pushl $0x17\n\t" \
: :         "pushl %%eax\n\t" \
: :         "pushfl\n\t" \
: :         "pushl $0x0f\n\t" \
: :         "pushl $1f\n\t" \
: :         "iret\n" \
: :         "1:\tmovl $0x17,%%eax\n\t" \
: :         "movw %%ax,%%ds\n\t" \
: :         "movw %%ax,%%es\n\t" \
: :         "movw %%ax,%%fs\n\t" \
: :         "movw %%ax,%%gs" \
: :         :::"ax")


--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.46.24]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店