微机知识:
1.注意8088常用在最小模式下。另外8位数据信号是指同时传输8bit二进制码,但是在内部一定是16位二进制码同时处理的。传输是指当如果要传输一个字,即两个字节,16bit出去的时候,要传输两次才可以传输出去。
2.8088的主要控制信号:
WR 写信号 RD读信号 都是低电平有效,会在字母上加一个横线。代表低电平有效的。
IO/M :0访问内存,1访问接口。
#DEN:低电平有效,允许进行读、写操作。
DT/#R:direct方向。数据收发器的传送方向控制。R为低电平就为读入的。
ALE:地址锁存信号。RESET:复位信号。
CPU在一个时间点上不可以即读又写,WR和RD不可以同时为低电平!
3.正常情况下,CPU访问一次内存或接口需要4个时钟周期。
一个周期相当于0.2微秒。4个时钟周期也称为一个总线周期。
4.8088微处理器组成结构:运算器、控制器、寄存器。
5.8088逻辑上分为:执行单元EU和总线接口单元BIU。
EU包括通用运算器、通用寄存器、暂存寄存器、FLAGS(标志寄存器等)。
功能:指令译码、指令执行、暂存中间运算结果、保存运算结果特征。
BIU包括地址加法器、段寄存器。
功能:负责访问内存、访问接口。从内存中取指令到指令预取队列。预取队列的作用就是存放指令。指令预取队列是并行流水线工作的基础!还负责与内存或输入输出接口之间的数据传送。在执行转移程序时,biu使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。
指令预取队列的存在使EU和BIU两个部分可以同时进行工作,实现了指令并行执行,提高了cpu效率,降低了对存储器存取速度的要求。
6.8088的内部寄存器:
内部寄存器含14个16位寄存器。分别是8个通用寄存器,4个段寄存器,2个控制寄存器。
通用寄存器分数据寄存器AX,BX,CX,DX、地址指针寄存器SP,BP,变址寄存器SI,DI。
这8个通用寄存器都是可以用来存放运算结果的。
4个数据寄存器都是16位的,都是可以拆分H和L的如AH,AL。
CX:可以用于循环或串操作指令中存放计数值。
DX:32位乘除时存放高16位数。
SP:指向栈顶的偏移地址。
除了ax和cx,都可以用来存放地址。
IP:指令指针寄存器,内容为下一条指令的偏移地址。(程序计数器PC)
FLAGS:只有9位有意义的,6个状态标志位,3个是控制标志位。
3个控制标志位:TF(trap Flag)陷阱标志位,也叫作跟踪标志位,为1时处于单步执行指令的工作方式。IF(Interrupt Enable Flag)中断允许标志位,为1时可以使CPU可以响应可屏蔽中断请求。DF(direction flag)方向标志位,在数据串操作时确定操作的方向。
7.8088内存中逻辑段的类型:
代码段 数据段 附加段 堆栈段(存放暂时不用但是需要保存的数据)。
对应4个段寄存器。
CS代码段寄存器。存放代码段的段基地址。
DS数据段寄存器,存放数据段段基地址。
ES附加段寄存器。
SS堆栈段寄存器。
8.实模型下的存储器寻址:
内存分段的管理思想:
8088是16位体系结构的微处理器,可以同时处理16位二进制码。
即可以产生64k个编码,即直接管理64k个内存单元。而8088需要管理1MB的内存。
那么就需要20位地址,2的20次方为1mb。这就产生了内存分段的管理模式。
段(基)地址:即存储单元在内存空间中处于哪个区域。
段内地址(相对地址、编译地址):指存储单元在段中的相对位置,即与段中1个单元的距离。8088位16位结构,所以段地址和偏移地址都是16位的。
逻辑段的起始地址成为段首(每个逻辑段内的地址为段首,段首的偏移地址为0)
如果段地址为6000H,那么段首地址为60000H。
物理地址不可能改变,在不同的时间点,某个物理地址的逻辑段可以变换。
9、目标操作数就是存放的地址。一定是一个地址。
10、寄存器和存储器都可以是数据存放的地址。
11、立即数无法作为目标操作数。
12、存储器操作数:只要看到【】,就表示要寻址的数是要存放在内存中的。方括号里面就是操作数在内存中的偏移地址。
ES是重设数据段。