【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《第5讲提纲》,欢迎阅读!
《微机原理》第五讲
复习:1.4计算机结构 2.2 处理器执行环境 2.2.1寄存器 1、通用寄存器 (1) AX
MOV AX,2222 作为通用寄存器使用 ADD AX,1234作为累加器使用 (2) BX
MOV BX,1234作为通用寄存器使用
MOV CX,[BX]作为基地址寄存器使用, 段地址默认为数据段,将DS:1234单元内容存入CL, DS:1235单元内容存入CH (3) CX、DX (略) (4)SI
MOV SI.1234作为通用寄存器使用
MOV CX,[SI]作为源变址寄存器使用, 段地址默认为数据段 MOV CX,[BX+SI] 基地址寄存器+源变址寄存器, 段地址为数据段 MOV CX,[BX+SI+1234] (5)DI
MOV CX,[DI]段地址为数据段,使用方法与SI相同. (6)BP
MOV CX,[BP+DI]段地址默认为堆栈段,其他使用方法与BX相同 (7)SP(略) 2.段寄存器
CS:代码段寄存器,DS:数据段,SS:堆栈段,ES:附加段寄存器。 举例:
①MOV AX,2000 MOV DS,AX
MOV AL,[1234] 默认段为数据段DS,将数据段2000:1234单元内容存AL ②MOV AX,3000 MOV SS,AX MOV BP,1234
MOV CL,[BP] 默认段为堆栈段SS,将3000:1234地址单元内容送入CL
④MOV AX,4000 MOV ES,AX
MOV AL,ES:[1234]设段地址为附加段ES,将4000:1234地址单元内容送AL 3.标志寄存器flag
flag是一个16位的寄存器。8086/8088CPU只使用了其中的9位,这9位可以分为两类:状态标志和控制标志,状态标志包括CF、PF、AF、ZF、SF和OF,其余的TF、IF、和DF为控制标志(如图2-5所示)。状态标志反映了EU执行算术或逻辑运算后的结果特征。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ××× × OF DF IF TF SF ZF × AF × PF × CF
进(借)位标志位 奇偶标志位 半进(借)位标位 零标志位 负号标志位 单步标志位 允许中断标志位 增量方向标志位 溢出标志位 图2-5 标志寄存器
(1)状态标志:
CF:进借位标志,算术运算时最高位(字节运算操作7或字运算操作15位)有
进位或借位CF=1否则=0。另外,循环移位指令执行过程也会改变此标志。 PF:奇偶标志;运算结果中低8位有偶数个“1”时,PF=1;否则PF=0。 AF:半进借位标志,运算时低8位第3位(半个字节)产生的进借位。例如:在执行加法运算过程中,若第3位有进位,或执行减法运算过程,第3位有借位,则AF=1;否则AF=0。
ZF:零标志,若运算结果为零,则ZF=1;否则ZF=0。
SF:符号标志,运算结果最高位为1(负)SF=1,否则SF=0。
OF:溢出标志,当最高位有进位,次高位没进位OF=1,当最高位没进位,次高
位有进位OF=1。最高位进位次高位进位=OF (2)控制标志:
DF:方向标志,串处理时,DF=1指令地址指针自动减量,由高到低。DF=0指
令地址指针自动增量,地址由低到高。当DF=1时,每次操作后使变址寄存器SI和DI减量;当DF=0时,则使变址寄存器SI和DI增量。
IF:中断标志,IF=1时,允许CPU响应可屏蔽的外部中断请求;IF=0时,CPU
对可屏蔽外部中断请求不予响应。 TF:陷井标志,用于单步方式操作。
状态标志是由CPU根据计算的结果自动设置的,控制标志则是由系统程序或
用户程序根据需要用指令来设置。 2.2.2 8086/8088存储器组织 1、存储器结构
8086/8088 CPU具有1MB(1兆字节)寻址能力,有220 个存储单元存放信息。 8086在访问存储器时,可以访问字,也可以访问字节。一些指令用来访问字,即16位数据,16位数据总是存放在相邻的两个单元内,
0000
且低位字节(低8位)总是存放在地址较低的单元,并
0001
把该单元地址称为该字的存储地址。
47H 0002
例如:0002H单元中存放的字数据为6A47H,同样:0005H 6AH 0003 单元中存放的字数据为2B91H。 0004
91H 0005 1.存储器的结构
字地址可以是偶数(如0002H),也可以是奇数(如 2BH 0006 0005H)。通常把存放在偶地址的字称为规则字,存放在 奇地址的字称为非规则字。访问一个字节的数据,用一 个总线周期来完成操作;若访问一个字,则需用一个或图2.4 字数据存储格式
二个总线周期来完成。对规则字,只需一个总线周期就可完成16位数据传送,对于非规则字则用二个总线周期来完成该字存取操作,将花费较多的时间。 2.存储器的分段
8086/8088CPU把1M字节的存储器空间划分为任意的一些存储段,每个段的大小可达64KB,这样段内地址可以用16位二进制数来表示,也即可以在CPU的寄存器中进行处理。在8086/8088CPU中,有四个段寄存器:CS、DS、SS和ES。这四个段寄存器存放了CPU 当前可以寻址的四个段的地址,可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。 3、逻辑地址和物理地址
有了段地址是否就能直接访问存储器呢?在1M的存储器中,每个存储器单元都有唯一的20位地址,称之为该存储单元的物理地址。CPU在访问存储器时,必须先确定所要访问的存储器单元的物理地址才能取得该单元的内容。20位物理地址由16位段地址和16位偏移地址组成。16位段地址和16位偏移地址统称为逻辑地址,程序中所使用的地址是逻辑地址。CPU在访问存储器时,根据段地址和偏移地址在BIU的地址加法电路中形成20位物理地址,其形成方法是将段地址左移4 位后加偏移量,即:
段地址×16d+偏移量=物理地址。
本文来源:https://www.wddqxz.cn/44c052f9910ef12d2af9e74f.html