Summary of chapter 2
Posted sun-yiwen-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Summary of chapter 2相关的知识,希望对你有一定的参考价值。
##所有的学习都是建立在8086CPU的基础上的
- About CPU
CPU的组成
- CPU由运算器,控制器,寄存器,总线(包括内部总线和外部总线)等构成
- 内部总线:实现cpu内部各个器件之间的联系
- 外部总线:实现CPU和主板上其他器件的联系
如何描述CPU
- CPU通常是由字长来描述的:
(1)16位(字长和位宽相同,均为16位)
(2)准32位CPU(字长32位,位宽16位)
(3)超32位CPU(字长32位,位宽64位)
-
CPU字长是CPU在单位时间内能一次处理二进制位数
-
位宽,CPU通过外部数据总线与内存之间一次能够传送的数据位
- About 寄存器
寄存器的组成
- 8086中有14个寄存器
(1)AX BX CX DX为通用寄存器,用来存放一般性的数据
(2)SI DI BP SP为基址和变址寄存器
(3)CS SS DS ES为段寄存器(CS寄存器:代码段段寄存器,用于存放代码段的「段地址」)
(4)IP FR为指令指针和标志寄存器(FR就是书上的PSW,即状态寄存器,是CPU运算器的一部分)(IP寄存器:指令指针寄存器,用于存放CPU将要读取的 指令在代码段中的偏移地址)
补充:状态寄存器用来存放两类信息:一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位(CF位)、有无溢出(OV位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(P位)等;另一类是存放控制信息(PSW:程序状态字寄存器),如允许中断(IF位)、跟踪标志(TF位)等。
注:以下以CS和IP寄存器为例来演示~~
2.对于兼容性的考虑,8086CPU可以一次性处理两种不同尺寸的数据。一个字由两个字节组成,所以这个字的高位字节和地位字节就分别存储在存储器的高8位存储器和低8位存储器中。如果把存储器看成两个独立的8位存储器来使用的时候,两个存储器之间是相互独立的。
3.数据划分
(1)字节 内存划分的基本单
(2)字 两个字节
(3)双字 四个字节
(4)四字 八个字节
- 汇编指令
- mov ax,18
- mov ah,18
- add ax,8
- mov ax,bx
- add ax,bx
- mov IP,ax(等价于jmp ax)
- jmp 3:01B6(等价于mov CS,3 mov IP,01B6)
注:指令的两个操作对象的位数应当是一样的,不可以操作一个16位寄存器和8位寄存器,也不能把超出寄存器位数的数据存入寄存器
- 8086CPU给出物理地址的方法
背景:我们所学习的汇编都是建立在8086CPU的基础上的,8086是16位机(即在8086内部,能够一次性处理、传输、暂时存储的信息的最大长度是16位的),但是8086CPU有20位的地址总线, 所以8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。
- CPU中由段地址和偏移地址来提供两个16位的地址
- 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
- 地址加法器将两个16位地址合成一个20位的物理地址
- 地址加法器通过内部总线将20位物理地址送上地址总线
- 20位物理地址被地址总线传送到存储器
物理地址=段地址x16+偏移地址(0~FFFFH)
- 修改CS、IP的指令
以Page33的问题2.3为例:
最后得出结论:
注意点:
- 设置CPU的初始状态,即CS和IP的初始状态
- IP寄存器中的数据在读取指令之后就要立刻改变数据,在执行指令之后(如果指令涉及到IP中数据的变化),IP中的数据还要再改变一次
拓展:将IA32拓展到64位(选自《深入理解计算机系统》)
我们正在经历一个想Intel指令集64位版本的过渡。最初由AMD提出并命名为x86-64,现在它被大多数的AMD64和Intel64处理器所支持。但是系统还是只运行这些操作系统的32位版本,但是较新的Linux和Windows版本都支持这种拓展。
IA32拓展到64位的原因:机器的字长定义了程序能够使用的虚拟地址范围,而32位字长也就是4GB的虚拟地址空间。对于需要处理大数据集的应用比如科学计算、数据库和数据挖掘来说,32位字长使程序员工作非常困难。他们必须使用out-of-core算法来编写代码。
X86-64
- 指针和长整数是64位
- 通用目的寄存器从8个拓展到16个
- 许多程序状态都保存在寄存器中,而不是栈上
- 如果可能,条件操作用条件传送指令实现,会比传统分支代码更好的性能
- 浮点操作用面向寄存器的指令集来实现,而不用IA32支持的基于栈的方法来实现
以上是关于Summary of chapter 2的主要内容,如果未能解决你的问题,请参考以下文章
CHAPTER 1 ----- a tour of computer sysytems