网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月15日
漏签
0
天
汇编吧
关注:
45,311
贴子:
163,803
看贴
图片
吧主推荐
游戏
35
回复贴,共
1
页
<<返回汇编吧
>0< 加载中...
80386切换保护模式后下一条指令是怎么取址的?
只看楼主
收藏
回复
clannair
汇编基础
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
引导扇区的代码,最开始实模式,CS=0x0000,IP=0x7c00,
执行到48行,更改了cr0寄存器,此时进入保护模式,那下一条指令取址的时候应该会把CS里的内容视为段选择子而非逻辑段地址。可是CS为0,选择gdt里第一项,第一项是全0,那怎么取到第51行里的指令啊?
chunloong
宏
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
插眼,有人回答了拍我一下
clannair
汇编基础
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
吧里人好少。。
阿比特
字符处理
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
还是以前的论坛好,一发帖就有大神来指点
clannair
汇编基础
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
顶顶
被风掌控的种子
基础知识
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主,我提供了一种设想。我可能有些词汇并不专业。是这样的,在第48行代码执行完后,他的cs和eip的值是固定的,这样便于我们修改页表。我们假设48行执行后的cs值为A,eip值为B,第58行代码的物理地址为Y。
1,硬盘里系统的页表相关数据里提前写好了类似“A:B对应Y”。
2,载入系统数据到内存,包含“A:B对应Y”关系的页表被载入内存。
3,执行到第48行代码后,保护模式被开启,此时cs,eip的性质就变了,就会被作为虚拟地址处理,取下一句代码时,内存管理单元把A:B当作虚拟地址相关处理,通过页表查阅到“A:B对应Y”,定位到Y地址处,取指,取出jump dword 0x0008:flush。
这是我所想到能实现的一种方式,但实际实现是否这样,我也不知道。
zjkl19
宏
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
个人理解,供你参考:
这应该《x86汇编语言:从实模式到保护模式》书中的一段代码。
“执行到48行,更改了cr0寄存器,此时进入保护模式,那下一条指令取址的时候应该会把CS里的内容视为段选择子而非逻辑段地址。”这句话没错。
“可是CS为0,选择gdt里第一项,第一项是全0”这句话不对,“jmp dword 0x0008:flush”这个代码已经改变了CS,也就是说CS的内容变成了0x0008,参照段选择子的格式,其索引为1,并不是gdt里面索引为0的那一项,而是索引为1的那一项(第2项),如果索引为1的那一项段描述符已经被正确设置,就可以正确执行。
zjkl19
宏
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在 32 位处理器上,即使是在实模式下,在执行访问内存的指令时(包括取指令时)也并非是将逻辑段地址左移 4 位,加上指令中提供的有效地址。相反,它同样是用段描述符高速缓存器中的 32 位线性基地址加上指令中提供的有效地址。
在进入保护模式之前,处理器就已经在使用 CS 描述符高速缓存器里的基地址从代码段取指令并执行指令。在进入主引导程序后,段寄存器 CS 的内容已经被设置为 0。在当初设置 CS 的时候,处理器用逻辑段地址 0左移 4 次,再零扩展到 32 位,传送到 CS描述符高速缓存器。此后,处理器就直接用 CS 描述符高速缓存器中的基地址取指令、执行指令,除非是执行一条改变 CS 内容的指令。
在这条段间转移指令之前,我们没有执行任何改变 CS 的指令(即使是在进入保护模式后,也没有执行这样的指令)。所以,进入保护模式后,处理器依然是用 CS 描述符高速缓存器里的32位基地址来取指令和执行指令。当然,一旦进入保护模式,如果要修改 CS 的内容,就不能是逻辑段地址了,而必须是代码段描述符选择子。
(参考:李忠《x86汇编语言:从实模式到保护模式(第2版)》P222-223)
这条段间转移指令在实方式下被预取(被送到指令缓冲器),在保护方式下被执行。通过该段间转移指令可把保护方式下代码段的选择子装入CS,同时也刷新指令预取队列。从此真正进入保护方式。
(参考:杨季文《新概念汇编语言》P364及王爽《汇编语言》第4版 第2章)
zjkl19
宏
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Virtual Box的运行结果及bochs的调试结果表明,可以运行。
cdd我的
基础知识
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个老师讲过,不过楼主描述的太复杂了,另外请问一下只需要看懂代码就行,还是要自己会写
cdd我的
基础知识
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主这个问题其实真的太简单了,虽然我学得不怎么样
,不过我看的是视频,你们写得出来代码,我有逻辑但是完全写不出来
cdd我的
基础知识
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
解释的很清楚
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示