0
点赞
收藏
分享

微信扫一扫

1606_PC汇编语言_简介以及8086系列的平台信息梳理


​​GreyZhang/g_unix: some basic learning about unix operating system. (github.com)​​

         看得出来外国高校教育中的质量,一个课程涉及到的资料特别庞大。我感觉掌握起来比较缓慢吃力,当然,这不排除语音障碍带来的影响。但是,对等的中文页面看起来估计也是很有挑战度的。这是我学习MIT的OS课程的时候一个中间的参考资料,主要是PC汇编语言相关的。这一次,整理其中的部分信息。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_unix

1. 高级的OS基本上都适用虚拟内存,有内存保护。

2. 之前的书籍中对于保护模式下的编程介绍很少,这是这本书编写的一个很重要的原因。

3. 这里顺带介绍了一个windows以及linux上都有的汇编工具NASM。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_实模式_02

         这一个章节基本上可以不用看,主要是介绍十进制、二进制以及十六进制的。之前看过的很多计算机相关的资料中都有,这也算是能够让我快速通关的一小点积累了。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_实模式_03

         这里算是掌握了一个新的常识性知识,以前只知道ASCII码的编码是一个字节的信息,这里增加了Unicode的编码所占存储空间信息:一个字,也就是两个字节。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_汇编_04

1. 这里用音乐类比了计算机的程序运行节拍,我觉得非常形象。很多时候,我觉得国外的资料读起来有意思就是因为多了很多这样的小细节,让人觉得整本书里面不仅仅有工程思想,也有艺术情怀。

2. 8088以及8086只支持16bit的实地址。到了286的阶段,支持了保护模式。而386开始,支持增加到了32bit,也就有了现代的通用处理器的原型。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_x86_05

         这里简单介绍了一下8086的架构以及寄存器体系,大学的时候没少受到这样的资料的折磨。但是,后来的工作经验告诉我大可不用怕,其实这个东西让他在我们脑海中留下一点影子即可,不用拼自己的记忆力。等我们在实战中不断与之打交道之后,他们会自然在我们的记忆中沉淀。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_保护模式_06

1. 实模式的机制我是看懂了,但是为什么会设计一个1MB空间的限制?这个我有点没理解,是因为当时制造出来的产品普遍达不到这个水准吗?

2. 多次看到的偏移地址或者分段信息限制为64K,根本原因其实是在于16bit的寄存器表达能力上限就是64K。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_实模式_07

1. 为什么会出现地址重叠?其实很好理解,因为最小的段偏移量是16,但是offset又可能大于16,最大64K,因此重合很正常。

2. 不同于实模式,保护模式下段不再固定的物理地址上,甚至可以不在内存中。运行的过程中,会有磁盘与内存之间的数据交换。看到这里,感觉这样是否会增加磁盘的寿命损耗呢?其实答案是很肯定的!除此之外,甚至还会有效率上的损失。

3. 由于CPU依然是16bit,因此之前的64K限制其实是还存在。

1606_PC汇编语言_简介以及8086系列的平台信息梳理_汇编_08

         升级后的32bit,保护模式其实是改进了段分配机制,改成了页,而每一个页大小是4K。这种升级,除了增加了支持的内存大小之外,还在一定程度上减少了swap的产生。

举报

相关推荐

0 条评论