1.微型计算机系统
1.1计算机系统组成
1.1.1 主机系统
主机系统由四部分组成
CPU,存储器,输入输出接口,总线
特征
能够与CPU直接进行信息交换的部件属于主机系统
不能够与CPU直接进行信息交换的部件属于外部设备
1.1.2 微处理器(CPU)
主要包括:运算器、控制器、寄存器组
1.1.3 存储器
内存储器
特点
存取速度较快,容量相对较小。
内存储器的分类
1.1.4 输入/输出接口
接口是CPU与外部设备间的桥梁
主要功能
1.数据缓冲寄存;
2.信号电平或类型的转换;
3.实现主机与外设间的运行匹配。
1.1.5 总线
是一组导线和相关的控制、驱动电路的集合。
是计算机系统各部件之间传输地址、数据和控制信息的通道
有三种总线:
地址总线(AB)
数据总线(DB)
控制总线(CB)
2 计算机中的编码
2.1 BCD码
3.8088内部寄存器
3.1内部寄存器类型
含14个16位寄存器,按功能可分为三类
8个通用寄存器
4个段寄存器
2个控制寄存器
3.2 通用寄存器
数据寄存器(AX,BX,CX,DX)
地址指针寄存器(SP,BP)
变址寄存器 (SI,DI)
3.2.1 数据寄存器
8088/8086含4个16位数据寄存器,它们又可分为8个8位寄
存器,即:
AX : 累加器。
所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中;
BX : 基址寄存器。
在间接寻址中用于存放基地址;
CX : 计数寄存器。
用于在循环或串操作指令中存放计数值;
DX : 数据寄存器。
在间接寻址的I/O指令中存放I/O端口地址 ;在32位乘除法运算时,存放
高16位数。
3.2.2 地址指针寄存器
SP:
堆栈指针寄存器,其内容为栈顶的偏移地址
BP:
基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。
BX 与 BP 在应用上的区别
作为通用寄存器,二者均可用于存放数据;
作为基址寄存器,用BX表示所寻找的数据在 数据段 ;用BP 则表示数据在 堆栈段 。
3.2.3 变址寄存器
SI:源变址寄存器
DI:目标变址寄存器
变址寄存器在指令中常用于存放数据在内存中的地址。
4.标志位.
4.1 状态标志位
CF(Carry Flag)
进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
OF(Overflow Flag)
溢出标志位。当算术运算的结果超出了有符号数的可表达范围时, OF=l
ZF(Zero Flag)
零标志位。当运算结果为零时ZF=1
SF(Sign Flag)
符号标志位。当运算结果的最高位为1时,SF=l
PF(Parity Flag)
奇偶标志位。运算结果的低8位中“1 ” 的个数为偶数时PF=l
AF(Auxiliary Carry Flag)
辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位), AF=1
案例
4.2控制标志位
TF(Trap Flag)
陷井标志位,也叫跟踪标志位。TF=1时,使CPU处于单步执行指 令的工作方式。
IF(Interrupt Enable Flag)
中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。
DF(Direction Flag)
方向标志位。在数据串操作时确定操作的方向。
5. 段寄存器
作用: 用于存放相应逻辑段的段基地址
8086/8088内存中逻辑段的类型
CS:
代码段寄存器,存放代码段的段基地址。
DS:
数据段寄存器 ,存放数据段的段基地址。
ES:
附加段寄存器,存放数据段的段基地址。
SS:
堆栈段寄存器, 存放堆栈段的段基地址
6.总线
7.指令
7.1 指令格式
7.2 数据传输类指令
7.2.3 MOV
7.2.4 PUSH和 POP
7.2.5 XCHG
7.2.6 XLAT
7.2.7 CBW CBD
7.3 输入输出指令
8.寻址方式
8.1立即寻址
由指令直接给出运算的数据(操作数是立即数。为常数形式或字符形式。
立即数只表示运算的数据,无地址含义
//立即寻址仅适合于源操作数。即源操作数是参加操作的数据本身
MOV AX,1200H
8.2 寄存器寻址
参加操作的操作数在CPU的通用寄存器中。
//此种寻址方式中的寄存器主要是通用寄存器
MOV AX,BX
8.3 直接寻址
指令中直接给出操作数的偏移地址
MOV AX,[1200H]
8.4 寄存器间接寻址
操作数存放在内存中,数据在内存中的偏移地址为方括号中通用寄存器的内容。
仅有4个通用寄存器可用于存放数据的偏移地址 (间址寄存器 BX BP SI DI)
MOV AX,[BX]
8.5 寄存器相对寻址
操作数的偏移地址为寄存器的内容加上一个位移量。
MOV AX,[BX+DATA] //DATA是任意8bit或16bit常数
MOV AL,[BX]5 //相当于[BX+5]
8.6 基址、变址寻址
操作数的偏移地址为
一个基址寄存器的内容 + 一个变址寄存器的内容;
MOV AX,[SI+BX] //也可以表示为[BX][SI]
8.7 基址、变址、相对寻址
操作数的偏移地址为:
基址寄存器内容+变址寄存器内容+位移量
MOV AL,[BP][DI]5 //也可以表示为[BP+DI+5]
8.8 隐含寻址
指令中隐含了一个或两个操作数的地址,即操作数在默 认的地址中。
MUL BL