计算机系统概述

硬件&软件

硬件

  • 中央处理器CPU
    • 控制器、运算器、寄存器
  • 存储器(呈现的是存储器地址)
    • 主存储器:RAM和ROM
    • 辅助存储器:磁盘、光盘、U盘
  • 外部设备(呈现出端口,即I/O地址)
    • 输入和输出设备

软件

  • 系统软件
  • 应用软件

进制转换

十进制小数转换成二或十六进制:小数部分分别乘以各自的基数,记录整数部分,直到小数部分为0为止

二或十六进制数转换成十进制数

ASCII码

回车\(0DH\)

换行\(0AH\)

响铃\(07H\)

数码\(0\sim 9\)\(30H\sim 39H\)

大写字母\(A\sim Z\)\(41H\sim 5AH\)

小写字母\(a\sim z\)\(61H\sim7AH\)

空格\(20H\)

补码

8位二进制补码:\(-128\sim +127\)

16位二进制补码:\(-2^{15}\sim +2^{15}-1\)

32位二进制补码:\(-2^{31}\sim +2^{31}-1\)

微机的软件

应用软件:

  • 文本编辑器
  • 汇编程序
  • 链接程序
  • 调试程序
  • 集成化开发环境

微型计算机系统

主存空间分配:

整个\(1MB\)主存空间从低位到高位地址可分为四个区域:

  1. 基本RAM区(00000H-9FFFFH):操作系统占掉一部分低地址,其他向用户程序开放
  2. 保留RAM区(A0000H-BFFFFH):为系统安排的“显示缓存存储区”
  3. 扩展ROM区(C0000H-DFFFFH):用于为系统不直接提供支持的外设安排设备驱动程序
  4. 系统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:指明代码段的起始地址

  • \(CS : IP\)取得下一条要执行的指令

SS:指明堆栈段的起始地址

  • \(SS:SP\)操作堆栈顶的数据

DS:指明数据段的起始地址

  • \(DS:EA\)存取数据段中的数据

ES:指明附加段的起始地址

  • \(ES:EA\)存取附加段中的数据
  • 是串操作的目的区必须是附加段

数据地址对齐

字单元安排在偶地址(xxx0B)、双字单元安排在 模 4 地 址(xx00B)

存储器的分段管理

8086 CPU有20条地址线但数据总线是16位

  • 最大可寻址空间为\(2^{20}=1MB\)

  • 物理地址范围从\(00000H~FFFFFH\)

8086CPU将\(1MB\)空间分成许多逻辑段

  • 每个段最大限制为64KB
  • 段地址的低4位为0000B

这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址

逻辑地址:段基地址:段内偏移地址

  • 段地址说明逻辑段在主存中的起始位置,8086规定段地址必须是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址
  • 偏移地址说明主存单元距离段起始位置的偏移量,每段不超过64KB,偏移地址也可用16位数据表示

将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址

1MB空间的分段

指令的组成

操作码

8086的寻址方式

立即数寻址

指令中的操作数存放在机器代码中

寄存器寻址

操作数存放在CPU的内部寄存器reg中

存储器寻址

指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中

  1. 直接寻址方式:指令中直接包含有效地址

    1
    2
    mov ax, [2000H]
    ;AX <- DS:[2000H]
  2. 寄存器间接寻址方式:有效地址存放在基址寄存器BX或变址寄存器SIDI

  3. 寄存器相对寻址方式:有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX/BPSI/DI

    • BX/SI/DI寄存器默认在DS,对应BP寄存器默认在SS
  4. 基址变址寻址方式:有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:

    • 有效地址=BX/BP+SI/DI
    • 段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀
  5. 相对基址变址寻址方式:有效地址是基址寄存器(BX/BP)、变址寄存器(SI/DI)与一个8位或16位位移量之和:

    • 有效地址=BX/BP+SI/DI+8/16位位移量
    • 段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀

寻址的多种表示方式

1
2
3
4
5
6
7
8
9
MOV AX,[BX][SI] 
;MOV AX,[BX+SI]

MOV AX,COUNT[SI]
;MOV AX,[SI+COUNT]

MOV AX,WNUM[BX][SI]
;等同于 MOV AX,WNUM[BX+SI]
;等同于 MOV AX,[BX+SI+WNUM]

数据寻址的组合

1
2
reg, imm/reg/mem
mem, imm/reg