《x86汇编语言从实模式到保护模式》的第一部分,预备知识的准备。
第一章 十六进制计数法
第二章 处理器内存和指令
2.1 寄存器和算术逻辑部件
- 总线:一些用于输入和输出数据的引脚和线路
- 寄存器:对于输入的电信号需要将其锁住,因此引入了寄存器的概念
- 算术逻辑部件:ALU模块
2.2 内存储器
内存储器,即内存,存放数据的作用。内存中的每个字节对应着一个地址。
2.4 指令和指令集
- 指令事实上也是一堆的数字,但是这堆数字是由芯片规定好的
- 低端字节序:高字节位于高地址,低字节位于低地址
- 立即数:这个数已经在指令中给出,不需要再次访问内存。相反,如果指令中给出的是地址,真正的数还需要访问内存才能得到,这不能称为立即数。
2.5 Intel 8086处理器
2.5.1 I8086通用寄存器
- 8个16位的通用寄存器,AX,BX,CX,DX,SI,DI,BP,SP
- AX是累加器,(Accumulator),与它有关的指令还会做指令长度上的优化,
- CX是计数器,(Counter)
- DX是数据寄存器,(DATA),除了作为通用寄存器使用之外,还专门用于和外设之间进行数据传送
- SI是源索引寄存器
- DI是目的索引寄存器
2.5.2 程序的重定位问题
- 使用“绝对地址”来编写程序的话,多个程序运行就会发生地址冲突问题
2.5.3 内存分段机制
- 用来解决上述的程序重定位问题。即使用“相对地址”方式来解决
- 由于代码段和数据段在机器语言中都是二进制数字表示,因此容易混淆,需要进行分段,分为代码段和数据段
- “段地址:偏移地址”访问模式
- 代码段寄存器(CS)和数据段寄存器(DS)
2.5.4 8086处理器的分段机制
- 8086有4个段寄存器,CS、DS、ES、SS
- 8086处理器的内存地址有20位,但是寄存器地址只有16位。为了保证16位的寄存器能访问20位的内存地址,使用“段地址 « 4 + 偏移地址”的方式
- 虽然指令的运行在我们外部看来是流水线方式的,一个接一个运行,但是在处理器内部,它有很多的优化,使得一些指令能并行处理
第三章 汇编语言简介
就真的是简介而已
第四章 虚拟机的安装和使用
介绍virtual box的安装,以及硬盘什么的