# 计算机系统概述
# 硬件 & 软件
硬件
- 中央处理器 CPU
- 控制器、运算器、寄存器
- 存储器(呈现的是存储器地址)
- 主存储器:RAM 和 ROM
- 辅助存储器:磁盘、光盘、U 盘
- 外部设备(呈现出端口,即 I/O 地址)
- 输入和输出设备
软件
- 系统软件
- 应用软件
# 进制转换
十进制小数转换成二或十六进制:小数部分分别乘以各自的基数,记录整数部分,直到小数部分为 0 为止
二或十六进制数转换成十进制数
# ASCII 码
回车:
换行:
响铃:
数码:
大写字母:
小写字母:
空格:
# 补码
8 位二进制补码:
16 位二进制补码:
32 位二进制补码:
# 微机的软件
应用软件:
- 文本编辑器
- 汇编程序
- 链接程序
- 调试程序
- 集成化开发环境
# 微型计算机系统
主存空间分配:
整个 主存空间从低位到高位地址可分为四个区域:
- 基本 RAM 区(00000H-9FFFFH):操作系统占掉一部分低地址,其他向用户程序开放
- 保留 RAM 区(A0000H-BFFFFH):为系统安排的 “显示缓存存储区”
- 扩展 ROM 区(C0000H-DFFFFH):用于为系统不直接提供支持的外设安排设备驱动程序
- 系统 ROM 区(E0000H-FFFFFH):由系统占用,主要提供 ROM-BIOS 程序
# 8086 微处理器
# 结构
-
总线接口单元 BIU:负责读取指令和操作数
-
执行单元 EU:负责指令译码和执行
- 地址总线是 20 位,8086 有 1 兆存储单元,1 兆是 20 位
- 数据总线 16 位,8086 有 16 根数据线
# 寄存器
数据寄存器
AX:累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等
BX:基址寄存器,常用做存放存储器地址
CX:计数器,作为循环和串操作等指令中的隐含计数器
DX:数据寄存器,常用来存放双字长数据的高 16 位,或存放外设端口地址。
变址寄存器
SI:源变址寄存器
DI:目的变址寄存器
指针寄存器
SP 为堆栈指针寄存器,指示栈顶的偏移地址,不能再用于其他目的,具有专用目的
BP 为基址指针寄存器,表示数据在堆栈段中的基地址
SP 和 BP 寄存器与 SS 段寄存器联合使用确定堆栈段中的存储单元地址
标志寄存器
指针指令 IP
指令指针寄存器 IP,指示代码段中指令的偏移地址
它与代码段寄存器 CS 联用,确定下一条指令的物理地址
计算机通过 CS : IP 寄存器来控制指令序列的执行流程
段寄存器
CS:指明代码段的起始地址
- 取得下一条要执行的指令
SS:指明堆栈段的起始地址
- 操作堆栈顶的数据
DS:指明数据段的起始地址
- 存取数据段中的数据
ES:指明附加段的起始地址
- 存取附加段中的数据
- 是串操作的目的区必须是附加段
# 数据地址对齐
字单元安排在偶地址(xxx0B)、双字单元安排在 模 4 地 址(xx00B)
# 存储器的分段管理
8086 CPU 有 20 条地址线但数据总线是 16 位
-
最大可寻址空间为
-
物理地址范围从
8086CPU 将 空间分成许多逻辑段
- 每个段最大限制为 64KB
- 段地址的低 4 位为 0000B
这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址
逻辑地址:段基地址:段内偏移地址
- 段地址说明逻辑段在主存中的起始位置,8086 规定段地址必须是模 16 地址:xxxx0H,省略低 4 位 0000B,段地址就可以用 16 位数据表示,就能用 16 位段寄存器表达段地址
- 偏移地址说明主存单元距离段起始位置的偏移量,每段不超过 64KB,偏移地址也可用 16 位数据表示
将逻辑地址中的段地址左移 4 位,加上偏移地址就得到 20 位物理地址
# 1MB 空间的分段
# 指令的组成
操作码:
# 8086 的寻址方式
# 立即数寻址
指令中的操作数存放在机器代码中
# 寄存器寻址
操作数存放在 CPU 的内部寄存器 reg 中
# 存储器寻址
指令中给出操作数的主存地址信息(偏移地址,称之为有效地址 EA),而段地址在默认的或用段超越前缀指定的段寄存器中
-
直接寻址方式:指令中直接包含有效地址
1
2mov ax, [2000H]
;AX <- DS:[2000H] -
寄存器间接寻址方式:有效地址存放在基址寄存器 BX 或变址寄存器 SI、DI 中
-
寄存器相对寻址方式:有效地址是寄存器内容与有符号 8 位或 16 位位移量之和,寄存器可以是 BX/BP 或 SI/DI
- BX/SI/DI 寄存器默认在 DS,对应 BP 寄存器默认在 SS
-
基址变址寻址方式:有效地址由基址寄存器(BX 或 BP)的内容加上变址寄存器(SI 或 DI)的内容构成:
- 有效地址=BX/BP+SI/DI
- 段地址对应 BX 基址寄存器默认是 DS,对应 BP 基址寄存器默认是 SS;可用段超越前缀
-
相对基址变址寻址方式:有效地址是基址寄存器 (BX/BP)、变址寄存器 (SI/DI) 与一个 8 位或 16 位位移量之和:
- 有效地址=BX/BP+SI/DI+8/16 位位移量
- 段地址对应 BX 基址寄存器默认是 DS,对应 BP 基址寄存器默认是 SS;可用段超越前缀
# 寻址的多种表示方式
1 | MOV AX,[BX][SI] |
# 数据寻址的组合
1 | reg, imm/reg/mem |