chapter1 微型计算机系统概述
1.1 8086微处理器
1.1.1 微处理器基本结构
cpu组成:
算术逻辑单元ALU
控制器
寄存器组
中断系统
cpu任务:执行存储器中的指令序列、完成算术逻辑操作、进行I/O设备之间的数据传送。
1.1.2 8086/8088结构
8086:16根数据线,20位地址线
8088:8086的过渡版本,内部结构16位,对外表现为8位
通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI
段地址寄存器:CS,DS,SS,ES,
指令地址寄存器:IP
EU:执行单元
BIU:总线接口单元
1.1.3 8086/8088的寄存器
8个通用寄存器,2个控制寄存器,4个段寄存
| 名称 | 可选 | 功能 | |
|---|---|---|---|
| AX | AH | AL | 累加器 |
| BX | BH | BL | 基址寄存器 |
|---|---|---|---|
| CX | CH | CL | 计数器 |
| DX | DH | DL | 数据寄存器 |
|---|---|---|---|
| SP | 堆栈指针 |
| BP | 基址指针 | ||
|---|---|---|---|
| SI | 源地址寄存器 |
| DI | 目的地址寄存器 | ||
|---|---|---|---|
| IP | 指令指针 | ||
| F | 标志寄存器 | ||
| CS | 代码段寄存器 | ||
| DS | 数据段寄存器 | ||
| SS | 堆栈段寄存器 | ||
| ES | 附加寄存器 | ||
AX,BX,CX,DX可分为高八位、低八位共8个8位寄存器,可独立使用,使用时与AX等无关
IP自动跟踪指令地址,始终指向下一条将要执行的指令,用户不可更改,在32位系统的debug中可以通过r指令来更改,r指令格式:
r ax,0000(默认输入的数据为16进制)
状态标志寄存器,十分重要的寄存器,共有9个标志位,其中6个状态标志位,3个控制标志位
| 溢出标志位 | 方向标志位 | 中断允许标志位 | 追踪标志位 | 符号标志位 | 零标志位 | 辅助进位标志位 | 奇偶标志位 | 进位标志位 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OF | DF | IF | TF | SF | ZF | AF | PF | CF |
DF=0,地址增址;DF=1,地址减址
1.2 存储器
1.2.1 memory
存储器以8位为一个存储单元进行编址,连续存放的两个字节成为一个字,低地址的字节地址为字的地址,也即是8086采取小端序的存储方式。
偶数地址开始的字称为规则字,奇数地址开始的字称为非规则字
1.2.2 存储器编址
1.2.3 存储器地址分段
分段管理:
每段最大为64KB
段起始地址存放于CS,DS,DD,ES
段与段之间可以是连续的、断开的、部分重叠的或全部重叠的
段的起始地址低4位必须全为0,也就是段的起始地址必须是16的倍数
实际地址的形成:
物理地址 = 段地址 * 16 + 偏移地址
物理地址是唯一的,但是同一物理地址可以由不同的短地址+偏移地址形成。
这个过程通过地址加法器来完成,计算时段地址左移4位(也即是*16)
十六进制:h
十进制:d
二进制:b
对于十六进制,若以字母打头,需要在前面补零,比如十进制的10应当写为:0Ah,否则可能会产生二义性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGHxDLYa-1601214424231)(D:\hello\course\大三上\汇编程序设计\笔记\image\地址表.png)]
分段管理的意义:减少指令的长度,缩短指令的执行时间、便于程序浮动装配
打头,需要在前面补零,比如十进制的10应当写为:0Ah,否则可能会产生二义性。
分段管理的意义:减少指令的长度,缩短指令的执行时间、便于程序浮动装配