找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 1260|回复: 3

请教:《实模式到保护模式(第2版)》第 16 章 16.4.7 p313 页【I/O 许可位映射区】问题

[复制链接]

10

主题

14

回帖

164

积分

至尊会员

积分
164

至尊会员

发表于 2024-8-4 19:21:21 | 显示全部楼层 |阅读模式
尊敬的李老师,您好!
有 2 个问题请教您,请百忙中给予指教!

在您的书中 16.4.7 p313 页,图 16-18 TSS中的 I/O 许可位映射区中;

1. TSS 段偏移 102 处:是 I/O 映射基地址,既然是基地址但内存单元只给了 16 比特,怎么保存 32 位的基地址?还是 I/O 映射基地址,实际指的是 I/O 映射区距 TSS 为 0 处的偏移地址?

2. I/O 映射区需要 0xFF 字节结尾,那么如果 I/O 映射区为 65536 字节,是 65537 字节设为 0xFF,还是第 65536 字节设为 0xFF?

3. 扩展出的 I/O 映射区与 TSS 段可以不连续,而 TSS 基地址由内核动态分配,那么此时是否只能用 4GB 段描述符寻址 TSS,段界限是否也要设置为 4GB?

谢谢!

418

主题

316

回帖

3296

积分

管理员

积分
3296
发表于 2024-8-5 17:43:52 | 显示全部楼层
1,I/O映射基地址虽然号称基地址,但它填写的是I/O映射位图相对于TSS起始处的距离,只需大于103就意味着它是存在的。I/O映射许可位图在TSS内部。

2,在I/O许可位置内,每个比特对应一个端口,而不是一个字节对应一个端口,这一点书上讲得很清楚。0xFF的字节是额外添加的,其原因书上讲得非常明白。

3,TSS的位置无所谓,它的基地址和偏移量由TSS描述符指定,而TSS描述符的选择子位于任务寄存器TR。

我感觉你这问题在书在都有解释,你看书不细啊,是不是跳着看的。

418

主题

316

回帖

3296

积分

管理员

积分
3296
发表于 2024-8-5 17:45:10 | 显示全部楼层
好吧,我认为你看的是64位的书。64位教材确实没过多解释TSS。
回头看一下《x86汇编语言:从实模式到保护模式》

10

主题

14

回帖

164

积分

至尊会员

积分
164

至尊会员

 楼主| 发表于 2024-8-6 23:13:55 | 显示全部楼层
谢谢,看到李老师的回复了。书的确是跳着看的,谢谢李老师!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 14:48 , Processed in 0.222346 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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