保护模式下寻址有默认段寄存器吗?

vnvlyp 2015-06-30 02:02:31
保护模式下,如果用形如 [段寄存器:偏移地址] 方式寻址,那么线性地址就是段寄存器指向描述符的基地址+偏移地址。
但是如果不指定段寄存器,直接用 [偏移地址] 方式寻址,有没有一个默认段呢?
...全文
265 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
老毛在1964年说过早打、大打、打原子战争,早打大打打核战争是后人总结的。
大熊猫侯佩 2015-07-01
  • 打赏
  • 举报
回复
Guy签名是老毛说的吧
竹影半墙 2015-07-01
  • 打赏
  • 举报
回复
赵老湿和mydo的说法我都有点小赞同
  • 打赏
  • 举报
回复
赵老湿最擅长的就是C&P大法。
大熊猫侯佩 2015-06-30
  • 打赏
  • 举报
回复
这些都是操作系统在初始化定义的。 不光是windows,linux也类似。 正如你所说的,你也可以在自己的OS中自己定义值
大熊猫侯佩 2015-06-30
  • 打赏
  • 举报
回复
默认的数据段、代码段和堆栈段仍然是ds,cs和ss。base都是从0开始的。
赵4老师 2015-06-30
  • 打赏
  • 举报
回复
引用 5 楼 vnvlyp 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:] 《The Intel 64 and IA-32 Architectures Software Developer's Manual》
能不能说明一下是哪一个章节。。这几千页的东西[/quote] 目录不会查一下吗? 253668.pdf Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1 CHAPTER 3 PROTECTED-MODE MEMORY MANAGEMENT 3.1MEMORY MANAGEMENT OVERVIEW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3.2USING SEGMENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 3.2.1Basic Flat Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 3.2.2Protected Flat Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 3.2.3Multi-Segment Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 3.2.4Segmentation in IA-32e Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 3.2.5Paging and Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 3.3PHYSICAL ADDRESS SPACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 3.3.1Intel® 64 Processors and Physical Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 3.4LOGICAL AND LINEAR ADDRESSES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 3.4.1Logical Address Translation in IA-32e Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 3.4.2Segment Selectors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 3.4.3Segment Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 3.4.4Segment Loading Instructions in IA-32e Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 3.4.5Segment Descriptors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 3.4.5.1Code- and Data-Segment Descriptor Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16 3.5SYSTEM DESCRIPTOR TYPES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18 3.5.1Segment Descriptor Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20 3.5.2Segment Descriptor Tables in IA-32e Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22
vnvlyp 2015-06-30
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
《The Intel 64 and IA-32 Architectures Software Developer's Manual》
能不能说明一下是哪一个章节。。这几千页的东西
赵4老师 2015-06-30
  • 打赏
  • 举报
回复
《The Intel 64 and IA-32 Architectures Software Developer's Manual》
vnvlyp 2015-06-30
  • 打赏
  • 举报
回复
引用 1 楼 mydo 的回复:
有默认段,你用调试器可以看到。 但是Windows保护模式下除了fs段基址和limit以外,所有段的base都是0,所以你可以将它直接对应到 线性地址的0上。
那默认段寄存器是ds吗?还是其他的? 因为我不是在windows环境下写,描述符和选择子都是我自己指定的,而段基址都不是0
大熊猫侯佩 2015-06-30
  • 打赏
  • 举报
回复
换句话说,你可以当保护模式下的段基址都是从0开始的--------当它“不存在”
大熊猫侯佩 2015-06-30
  • 打赏
  • 举报
回复
有默认段,你用调试器可以看到。 但是Windows保护模式下除了fs段基址和limit以外,所有段的base都是0,所以你可以将它直接对应到 线性地址的0上。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧