荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店