找回密码
 立即注册
搜索
热搜: 活动 通知
楼主: wum

x86汇编语言第二版第19章好像有个错误?

[复制链接]

3

主题

20

回帖

143

积分

至尊会员

积分
143

至尊会员

发表于 2024-3-14 17:42:07 | 显示全部楼层

站长不是让尝试修复问题吗?16楼里说361-362是漏了让用户任务页目录表最后一项指向自己的代码。
我想了下是增加一行 mov [0xffffeffc], ebx

完整代码部分是:
  1. call allocate_a_4k_page
  2.          mov ebx,eax
  3.          or ebx,0x00000007
  4.          mov [0xfffffff8],ebx
  5.                              
复制代码


95

主题

107

回帖

1449

积分

管理员

积分
1449
发表于 2024-3-15 07:49:37 | 显示全部楼层
cindeequan 发表于 2024-3-14 17:42
站长不是让尝试修复问题吗?16楼里说361-362是漏了让用户任务页目录表最后一项指向自己的代码。
我想了下 ...

没这么简单。你这是向当前活动的页目录里添加,而不是往新分配的页目录里添加。

由于不能使用物理地址,所以程序中是先映射这个新分配的页目录,然后再访问。你这刚一分配就直接访问,是不可能行的。

3

主题

20

回帖

143

积分

至尊会员

积分
143

至尊会员

发表于 2024-3-18 11:35:02 | 显示全部楼层
站长 发表于 2024-3-15 07:49
没这么简单。你这是向当前活动的页目录里添加,而不是往新分配的页目录里添加。

由于不能使用物理地址, ...

抱歉,代码敲错了, 应该是用
mov [0xffffeffc], ebx
这样高10位 3ff乘以4是FFC,当前页目录表(内核)最后一项,指向当前页目录表自己,
中间10位3fe乘以4是FF8,当前页目录表(内核)倒数第二项,指向用户任务页目录表,
最后偏移FFC,是用户任务页目录表最后一项,将ebx(用户任务页目录表物理地址)存入该偏移处


复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-4-27 22:02 , Processed in 0.217662 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表