版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本次课主要内容2.28088/8086微处理器(重点)
8088/8086CPU的功能结构(书2.2.3)
8088/8086CPU的存储器组织(书2.2.4)第2章
微处理器与总线小结第2章:教学要求2.1微处理器概述2.2(重点)8088/8086微处理器8088/8086CPU功能结构(书2.2.3)
8088/8086CPU存储器组织(书2.2.4)
8088CPU外部引脚及其功能(书2.2.2)8088/8086CPU工作时序(书2.2.5)
2.32.4(一般了解)80386,
Pentium微处理器2.5总线8088系统总线
(书2.5.4)
第2章
微处理器与总线本章教学重点8088内部寄存器、存储器组织
、最小组态下的引脚定义上次课回顾
-----与前面所学知识的衔接汇编语言程序员看到的硬件中央处理单元CPU(Intel80x86)对汇编语言程序员,最关心其中的寄存器内存(主存储器)呈现给汇编语言程序员的,是主存储器地址存储器地址是存储器中存储单元的编号外部设备(接口电路)汇编语言程序员看到的是端口(I/O地址)I/O接口内存系统总线CPU寄存器控制器运算器辅助存储器输入设备输出设备微型计算机的系统组成CPU
CPUMOVAL,DLCPU内存
MOVAL,ES:[5678H]CPUI/O接口
IN AL,56H上次课回顾结束返回一.8086CPU功能结构◆
8086的内部结构◆
8086的寄存器结构
☆
1.通用寄存器(8个)
2.指令指针寄存器IP
☆3.标志寄存器PSW
从应用角度(不是从内部工作原理)展开为学习指令系统打好基础例如:关心用户“可编程”寄存器,不关心无法操纵的“透明”寄存器1.8086CPU内部结构8088的基本组成8088的内部结构从功能上分成两个单元1.总线接口单元BIU管理8088与系统总线的接口负责CPU对存储器和外设进行访问2.执行单元EU负责指令的译码、执行和数据的运算两个单元相互独立,分别完成各自操作,还可以并行执行,实现指令预取(指令读取和执行的流水线操作)
1.算术逻辑单元ALU(运算器)2.寄存器组3.指令处理单元(控制器)图示8086的内部结构123456内部寄存器
IP
ES
SSDSCS输入/输出控制电路外部总线执行部分控制电路ALU标志寄存器
AXAHALSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位地址总线16位
BXBHBL
DXDHDL
CXCHCLALU数据总线2.8088/8086的内部寄存器8086的内部寄存器组有数据寄存器指针寄存器通用寄存器变址寄存器指令指针寄存器状态标志寄存器段寄存器他们均为16位!图示
汇编语言程序员看到的处理器,就是寄存器所以,一定要熟悉这些寄存器的名称和作用(1)数据寄存器AX称为累加器(Accumulator)使用频度最高。用于算术、逻辑运算以及与外设传送信息等BX称为基址寄存器(BaseaddressRegister)常用做存放存储器地址CX称为计数器(Counter)作为循环和串操作等指令中的隐含计数器DX称为数据寄存器(Dataregister)常用来存放双字长数据的高16位,或存放外设端口地址4个数据寄存器还可以分成高8位和低8位两个独立的寄存器,这样又形成8个通用的8位寄存器AX:AHAL BX:BHBLCX:CHCL DX:DHDL(2)指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器(StackPointer),指示堆栈段栈顶的位置(偏移地址)BP为基址指针寄存器(BasePointer),表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式、而不是随机存取方式。用8088/8086形成的微机系统中,堆栈区域被称为堆栈段(3)变址寄存器16位变址寄存器SI和DI常用于存储器变址寻址方式时提供地址SI是源地址寄存器(SourceIndex)DI是目的地址寄存器(DestinationIndex)在串操作类指令中,SI、DI还有较特殊的用法
现在不必完全理解,以后会详细展开(4)指令指针寄存器IPIP(InstructionPointer)为指令指针寄存器,用来控制CPU指令执行顺序随着指令的执行,IP将自动修改以指示下一条指令所在的内存地址。顺序执行时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节IP寄存器与CS段寄存器联合使用以确定下一条指令的内存地址。(5)状态标志寄存器(PSW程序状态字)存放cpu工作过程中状态,即反映指令执行结果或控制指令执行形式8088处理器的各种标志形成了一个16位(用9位)的状态标志寄存器PSW状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CZSPOA控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式
DITO111512D10I9T8S7Z65A43P21C0
程序设计需要利用标志的状态进位标志C(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即C=1;否则C=03AH+7CH=B6HAAH+7CH=(1)26H没有进位:C=0有进位:C=1奇偶标志P(ParityFlag)当运算结果低8位中“1”的个数为零或偶数时,P=1;否则P=03AH+7CH=B6H=P标志仅反映最低8位中“1”的个数是
偶或奇,即使是进行16位字操作10110110B结果中有5个“1”,是奇数:P=0半加标志位(辅助进位)A(AuxiliaryCarryFlag)这个标志主要用于对BCD运算结果的调整,由处理器内部使用,用户一般不必关心运算时低半字节(D3向D4)有进位(加法)或借位(减法)时,A=1;否则A=0零标志Z(ZeroFlag)若运算结果为0,则Z=1;否则Z=03AH+7CH=84H+7CH=
注意:Z为1表示运算结果是0B6H,结果不是零:Z=
0(1)00H,结果是零:Z=1符号标志S(SignFlag)运算结果最高位为1,则S=1;否则S=03AH+7CH=B6H,最高位D7=1:S=184H+7CH=(1)00H,最高位D7=0:S=0
有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态陷阱标志位T(TrapFlag)(单步标志位)用于控制CPU进入单步操作方式。通常用于程序调试。设置TF=0,处理器正常工作;设置TF=1,处理器单步执行指令中断允许标志位I(Interrupt-enableFlag)控制CPU是否响应可屏蔽中断请求设置I=1,则允许中断;设置I=0,则禁止中断CLI指令复位中断标志:I=0STI指令置位中断标志:I=1方向标志位D(DirectionFlag)用于串操作指令,控制地址的变化方向:设置D=0,存储器地址自动增加;设置D=1,存储器地址自动减少CLD指令复位方向标志:D=0STD指令置位方向标志:D=1溢出标志位O(OverflowFlag)若算术运算的结果有溢出,则O=1;否则O=0?什么是溢出处理器内部以补码表示有符号数8位有符号数表达的整数范围是:+127~-12816位表达的范围是:+32767~-32768如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确溢出举例分析:3AH+7CH=B6H,就是58+124=182,已经超出-128~+127范围,产生溢出,故OF=1;补码B6H表达真值是-74,显然运算结果也不正确B6H=10110110B,最高位为1,作为有符号数是负数对B6H求反加1等于:01001001B+1=01001010B=4AH=74
所以,B6H表达有符号数的真值为-743AH+7CH=B6H,产生溢出:OF=1溢出的简单判断法只有当两个同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出例1:3AH+7CH=B6H 例2:AAH+7CH例3:3AH-7CH 例4:AAH-7CH=2EH 溢出无溢出无溢出溢出PSW小结(6)段寄存器8088有4个16位段寄存器CS(代码段)指明代码段的起始地址SS(堆栈段)指明堆栈段的起始地址DS(数据段)指明数据段的起始地址ES(附加段)指明附加段的起始地址每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途返回二.存储器组织问题一:寄存器、存储器(内存)、外存都用于存储信息,为何仅讨论CPU的存储器寻址?解答:存储器可直接与CPU进行数据交换问题二:
16位寄存器如何能寻址1M内存空间?解答:内存空间分段,逻辑地址/物理地址转换问题三:CPU如何实现存储器寻址?
解答:CPU总线接口单元???1.存储器寻址功能2.存储器的分段管理3.物理地址和逻辑地址4.段寄存器及逻辑段分配5.CPU存储器结构6.存储器数据的存储格式MemoryAddressing存储器寻址
---CPU的存储器结构问题1
问题2
问题31.存储器寻址的功能
(FunctionofMemoryAddressing)功能AddressingDatainMEMORY存储器(内存)是计算机存储信息的地方。可直接与CPU进行数据交换。掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要寄存器
存储器
外存
CPU
寄存器、存储器(内存)、外存区别??寄存器、存储器和外存的区别寄存器是微处理器(CPU)内部暂存数据的存储单元,以名称表示,例如:AX,BX..….等存储器也就是平时所说的主存,也叫内存,可直接与CPU进行数据交换。主存利用地址区别外存主要指用来长久保存数据的外部存储介质,常见的有硬盘、光盘、磁带、U盘等。外存的数据只能通过内存间接地与CPU交换数据程序及其数据可以长久存放在外存,在运行需要时才进入主存2.存储器的分段管理8088CPU访问内存有20条地址线共220B=1MB个存储单元FFFFFH,内存地址00000H~FFFFFH8088CPU将1MB空间分成许多段,有4个16位段寄存器,对应4种逻辑段.
CodeSegment代码段StackSegment堆栈段DataSegment数据段ExtraSegment附加段每个段最大限制为64KB内部寄存器16位如何寻址20条地址线220=1MB?物理地址逻辑地址3.物理地址和逻辑地址用户编程时采用逻辑地址,形式为段地址:
偏移地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用)分隔符段寄存器内容有效地址EA逻辑地址 1460H:100H、1380H:F00H物理地址 14700H14700H例:MOVAX,ES:[0100H] ;AX←ES:[0100H]逻辑地址(16位,汇编语言编程时采用)形式为段地址:
偏移地址段地址段寄存器CS,DS,ES,SS内容说明逻辑段在主存中的起始位置偏移地址说明主存单元距离段起始位置的偏移量物理地址(20位,地址线寻址,实际地址)物理地址=段地址*16+偏移地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用)主存储器物理地址和逻辑地址例:MOVAX,ES:[0100H] ;AX←ES:[0100H]例:逻辑地址1460H:1001380:F00H
物理地址14700H14700H8086CPU引脚线---外部特性CPU引脚是系统总线的基本信号可以分成三类信号16位数据线:D0~D1520位地址线:A0~A19
确定存储器物理地址控制线CPU内部寄存器(编程用)确定存储器逻辑地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用)物理地址和逻辑地址的转换物理地址=段地址*16+偏移地址将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址一个物理地址可以有多个逻辑地址逻辑地址 1460H:100H1380H:F00H物理地址 14700H14700H14600H+
100H14700H13800H+
F00H14700H段地址左移4位加上偏移地址得到物理地址4.段寄存器及逻辑段分配8088有4个16位段寄存器CS(CodeSegmentRegister)指令SS(StackSegmentRegister)堆栈DS(DataSegmentRegister)数据ES(ExtraSegmentRegister)数据每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途如何分配各个逻辑段程序的指令序列必须安排在代码段CS程序使用的堆栈一定在堆栈段SS程序中的数据默认是安排在数据段DS,也经常安排在附加段ES,尤其是串操作的目的区必须是附加段数据的存放比较灵活,实际上可以存放在任何一种逻辑段中没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段演示逻辑段的分配代码段寄存器CS(CodeSegment)代码段用来存放程序的指令序列代码段寄存器CS存放代码段的段地址指令指针寄存器IP指示下条指令的偏移地址处理器利用CS:IP取得下一条要执行的指令逻辑地址堆栈段寄存器SS(StackSegment)堆栈段确定堆栈所在的主存区域堆栈段寄存器SS存放堆栈段的段地址堆栈指针寄存器SP指示堆栈栈顶的偏移地址处理器利用SS:SP操作堆栈顶的数据逻辑地址数据段寄存器DS(DataSegment)数据段存放运行程序所用的数据数据段寄存器DS存放数据段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用DS:EA存取数据段中的数据逻辑地址附加段寄存器ES(ExtraSegment)附加段是附加的数据段,也保存数据:附加段寄存器ES存放附加段的段地址各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址处理器利用ES:EA存取附加段中的数据串操作指令将附加段作为其目的操作数的存放区域逻辑地址8086/8088的地址产生小结偏移地址加法器物理地址(20位)
段寄存器(段地址)|0000若CS=2000H,IP=2200H,求当前指令的物理地址?逻辑地址段地址:偏移量段地址:CS,DS,ES,SS段基址寄存器偏移地址:SP,BP,DI,SI,IP等指针寄存器上述寄存器都是16位的物理地址20位实际地址=段地址*16+偏移量演示5.CPU存储器结构CPU总线接口单元(BIU)负责CPU对存储器和外设进行访问地址加法器16位逻辑地址寄存器16位CPU地址线:A0~A1920位物理地址完成物理地址、逻辑地址转换8086的内部结构123456内部寄存器
IP
ES
SSDSCS输入/输出控制电路外部总线执行部分控制电路ALU标志寄存器
AXAHALSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位16位
BXBHBL
DXDHDL
CXCHCL8088指令执行过程示意例:MOVAX,0064H机器代码B8H64H00H执行该指令时CS=1000H,IP=100H物理地址?段地址CS=1000H偏移地址IP=100H逻辑地址1000H:100H物理地址1000H16+100H=10100H8088指令执行过程示意(例:MOVAX,0064H;机器代码B8H64H00H
执行该指令时CS=1000H,IP=100
)6.存储器数据的存储格式计算机中信息的单位二进制位Bit:存储一位二进制数:0或1字节Byte:8个二进制位,D7~D0字Word:16位,2个字节,D15~D0双字DWord:32位,4个字节,D31~D0最低有效位LSB:数据的最低位,D0位最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位每个存储单元都有一个编号存储单元地址(或内存地址、存储器地址)每个存储单元存放一个字节(8位二进制数)的内容存储单元内容例:00002H单元存放有一个数据34H表达为 [00002H]=34H8086存储主存储器(内存)存放cpu执行的程序及数据读出:cpu从内存中取出程序及数据过程写入:将程序及数据存放于内存的过程主存储器由许多存储单元组成每个存储单元存放8位二进制数(1字节)--存储单元内容每个存储单元编不同号码--存储单元地址(或内存地址、存储器地址)8086cpu访问内存有20位地址线,内存地址00000H~FFFFFH共220B=1MB个存储单元存储器地址(Address)存储器由大量存储单元组成,需要用编号区别每个单元:编号=地址存储器地址是存储器中存储单元的编号Intel8086具有1兆字节(1MB)存储器容量存储器地址表示为:00000H~FFFFFH采用十六进制H数来表达地址内存
MOVAX,ES:[5678H]多字节数据存放方式多字节数据在存储器中占连续的多个存储单元存放:低字节存入低地址,高字节存入高地址表达:用它的低地址表示多字节数据占据的地址空间。同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等(视具体情况来确定)
80x86处理器采用“低对低、高对高”的存储形式,被称为“小端方式LittleEndian”。相对应还存在“大端方式BigEndian”。8086存储8088CPU的存储格式--小端存储方式D7D0字节D15D0字D31D0双字00006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB00002H单元的内容为:[00002H]=34H00002H“字”单元的内容为:[00002H]=1234H00002H号“双字”单元的内容为:
[00002H]=78561234H多字节数据在存储器中占连续的多个存储单元存放:低字节存入低地址,高字节存入高地址表达:用低地址表示多字节数据占据的地址空间同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等
设DS=000002H“双字”单元MOVEAX,[0002H]00002H“字”单元MOVAX,[0002H]00002H单元
MOVAH,[0002H高地址存储单元D7D0存储器地址数据的地址对齐同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等字单元安排在偶地址(xxx0B)、双字单元安排在模4地址(xx00B)等,被称为“地址对齐(Align)”对于不对齐地址的数据,处理器访问时,需要额外的访问存储器时间应该将数据的地址对齐,以取得较高的存取速度内存(存储器)一般图示方法56H28E94H12H28E93H34H28E92H内存单元内容(数据)内存单元物理地址内存单元内容(数据)内存单元偏移地址56H0004H12H0003H34H0002H若段地址=28E9H,两种方法表同一存储区方法一方法二返回8086的内部结构123456内部寄存器
IP
ES
SSDSCS输入/输出控制电路外部总线执行部分控制电路ALU标志寄存器
AXAHALSPBPSIDI通用寄存器地址加法器指令队列执行单元(EU)总线接口单元(BIU)16位20位16位
BXBHBL
DXDHDL
CXCHCL8086的寄存器组状态标志寄存器(PSW程序状态字)存放cpu工作过程中状态,即反映指令执行结果或控制指令执行形式8088处理器的各种标志形成了一个16位(用9位)的状态标志寄存器PSW状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它CZSPOA控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式
DITO111512D10I9T8S7Z65A43P21C0
程序设计需要利用标志的状态8086CPU引脚线---外部特性CPU引脚是系统总线的基本信号可以分成三类信号16位数据线:D0~D1520位地址线:A0~A19确定存储器物理地址共220B=1MB个存储单,内存地址00000H~FFFFFH控制线CPU内部寄存器(编程用)确定存储器逻辑地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用)逻辑地址(16位,汇编语言编程时采用)形式为段地址:
偏移地址段地址段寄存器CS,DS,ES,SS内容说明逻辑段在主存中的起始位置偏移地址说明主存单元距离段起始位置的偏移量物理地址(20位,地址线寻址,实际地址)物理地址=段地址*16+偏移地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用)主存储器物理地址和逻辑地址例:MOVAX,ES:[0100H] ;AX←ES:[0100H]例:逻辑地址1460:1001380:F00
物理地址14700H14700H8088CPU的存储格式--小端存储方式D7D0字节D15D0字D31D0双字00006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB00002H单元的内容为:[00002H]=34H00002H“字”单元的内容为:[00002H]=1234H00002H号“双字”单元的内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州西亚斯学院《数字电子技术》2021-2022学年期末试卷
- 官方版个人借款合同样式
- 破碎石销售协议
- 图书馆宣传推广服务合同
- 高速公路工程分包协议书劳务
- 制服订购协议范本
- 2024年度医疗器械销售合同:某医疗器械公司与某医院就医疗器械销售达成协议
- 精装修房屋买卖合同
- 二手车辆购买合同样本
- 虫控服务合同范本
- 哈利波特与混血王子台词中英对照
- 健康领域核心经验解读与活动指导课件
- 安全教育主题班会模板
- 《原电池》上课课件(全国优质课获奖案例)
- 《隋朝的统一与灭亡》-完整版课件
- 学校结核病防治知识培训课件
- 微课脚本设计表
- 工业漆水性丙烯酸防护msds
- 小学数学人教版五年级下册《3.1.1 长方体和正方体的认识》课件
- 仓储管理第2章仓库规划与布局设计
- 胃癌临床表现与鉴别诊断治疗精编ppt
评论
0/150
提交评论