




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、16位和32位微处理器1第二章第二章 微处理器及其系统微处理器及其系统8086/80888086/80888086/8088 8086/8088 的寄存器结构的寄存器结构8086/8088 8086/8088 的存储器的存储器80 x8680 x8616位和32位微处理器2Intel 8086的结构Intel 8086的编程结构Intel 8086的寄存器结构Intel 8086的存储器编址和I/O编址16位和32位微处理器3Intel 8086的结构编程结构:从程序员和使用者的角度来看的结构。编程结构:从程序员和使用者的角度来看的结构。 这种结构与这种结构与CPUCPU内部的物理结构和实际布
2、局有区别。内部的物理结构和实际布局有区别。分两部分:分两部分:1 1、总线接口单元、总线接口单元 BIU BIU (Bus Interface UnitBus Interface Unit)2 2、执行部件、执行部件 EU EU (Execution UnitExecution Unit)16位和32位微处理器4Intel 8086的结构特点的结构特点 (1) 内部结构内部结构 是是16位的位的 (内部寄存器,内部运算部件,内部操作按(内部寄存器,内部运算部件,内部操作按 16位设计);位设计); (2)外部数据总线外部数据总线16条,能处理条,能处理16位数据位数据,也能处理也能处理8位数据
3、;位数据; (具有(具有16位运算指令)位运算指令) (3) 汇编语言与汇编语言与8080/8085兼容,即能执行整套兼容,即能执行整套 8080/8085的指令的指令. 增加了许多增加了许多16位操作指令;位操作指令; (4) 20条地址总线,直接寻址能力条地址总线,直接寻址能力1M字节;字节; (5) 40条引线封装;条引线封装; (6) 单相时钟;单相时钟; (7) 电源为电源为5V。 8086与与8088的主要区别在于的主要区别在于8086的外部数据总线的外部数据总线16位。位。16位和32位微处理器5CHDHDISPBPSI65标志3执行部分控制电路运算寄存器ALU1 24DSSSE
4、S输入/输出控制电路IPCS内部暂存器BHAHDLCLALBL20 位地址加法16 位外部总线指令队列缓冲器8 位16 位通用寄存器执行部件(EU)总线接口部件(BIU)8086编程结构编程结构16位和32位微处理器6(1)总线接口单元)总线接口单元 BIU功能:功能: 负责与负责与 存储器、存储器、I/O I/O 端口传送数据。端口传送数据。具体讲:具体讲: 总线接口部件要从内存总线接口部件要从内存 取指令送到指令队列;取指令送到指令队列; CPUCPU执行指令时,要配合执行部件从指定的内存单元执行指令时,要配合执行部件从指定的内存单元 或者外设端口中取数据,将数据传送给执行部件;或者外设端
5、口中取数据,将数据传送给执行部件; 或把执行部件的操作结果传送给指定的或把执行部件的操作结果传送给指定的MM或或I/OI/O口。口。1 1、总线接口单元、总线接口单元 BIUBIU(Bus Interface UnitBus Interface Unit)16位和32位微处理器7q 4 个段地址寄存器(个段地址寄存器(CS、DS、ES、SS),),q 16位指令指针寄存器位指令指针寄存器IP,q 20位的地址加法器位的地址加法器(16d 段地址段地址+偏移地址物理地址偏移地址物理地址),q 6字节(字节(8086)或)或4字节(字节(8088)的指令队列)的指令队列,q 总线控制电路总线控制电
6、路: 处理器与外界总线联系的转接电路。处理器与外界总线联系的转接电路。包括三组总线:包括三组总线:20 位地址总线,位地址总线, 16 位位(8086)或或8位(位(8088)双向数据总)双向数据总线,一组控制总线。线,一组控制总线。(2 2)总线接口单元)总线接口单元 BIU BIU 组成组成16位和32位微处理器8 指令队列指令队列8086 8086 的指令队列为的指令队列为6 6个字节个字节, ,8088 8088 的指令队列为的指令队列为4 4个字节。个字节。不论是不论是80868086还是还是80888088都会在执行指令的同时从内存中都会在执行指令的同时从内存中取下一条或几条指令,
7、取来的指令放在指令队列中,使取下一条或几条指令,取来的指令放在指令队列中,使 BIU BIU 具有预取指令的功能,是一种先进先出(具有预取指令的功能,是一种先进先出(FIFOFIFO)的)的数据结构。数据结构。(3 )说说 明明16位和32位微处理器9说说 明明 指令执行顺序指令执行顺序顺序指令执行:指令队列存放紧接在执行指令后面的那顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。一条指令。执行转移指令:执行转移指令:BIU BIU 清除指令队列中的内容,从新的清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单地址取入指令,立即送往执行单元,然后再从新单元开始重
8、新填满队列。元开始重新填满队列。16位和32位微处理器10地址加法器的作用:用来形成20位物理地址,如CS=F010H,IP=1000H,则要访问的物理地址是:CS*16+IP=F1100H说说 明明16位和32位微处理器11(1 1)、)、 功能:负责指令执行。功能:负责指令执行。(2 2)、)、 组成:组成:q 4 4个通用寄存器:个通用寄存器:AXAX、BXBX、CXCX、DX;DX;q 4 4个专用寄存器:个专用寄存器:BPBP、SPSP、SISI、DI;DI;q 标志寄存器(标志寄存器(PSWPSW):): 9 9个标志位,其中个标志位,其中6 6个条件标志位用于存放结果状态个条件标
9、志位用于存放结果状态; ;2、EU (Execution Unit)执行单元)执行单元16位和32位微处理器12q 算术逻辑单元:算术逻辑单元: 16 16 位加法器,用于对寄存器和指令操作数进行算术或位加法器,用于对寄存器和指令操作数进行算术或逻辑运算;逻辑运算;q EU EU 控制系统:控制系统: 接受从总线接口单元的指令队列中取来的指令代码,对接受从总线接口单元的指令队列中取来的指令代码,对其译码和向其译码和向 EU EU 内各有关部分发出时序命令信号,协调内各有关部分发出时序命令信号,协调执行指令规定的操作。执行指令规定的操作。16位和32位微处理器13 由此可见,由此可见,8086/
10、80888086/8088取指部分与执行部取指部分与执行部分是分开的。分是分开的。在一条指令的执行过程中可以取出下一条(或多在一条指令的执行过程中可以取出下一条(或多条)指令,指令条)指令,指令 在指令队列中排队;在指令队列中排队;在一条指令执行完成后在一条指令执行完成后, ,就可以立即执行下一条就可以立即执行下一条指令,减少指令,减少CPUCPU为取指令而等待的时间,提高为取指令而等待的时间,提高CPUCPU的利用率和整个运行速度。的利用率和整个运行速度。16位和32位微处理器14BIU和和EU分开,取指和执行可以重迭,分开,取指和执行可以重迭,大大减少了等待取指所需的时间,提高大大减少了等
11、待取指所需的时间,提高CPU的利用率。的利用率。重迭操作技术:一方面提高了整个执行速率,重迭操作技术:一方面提高了整个执行速率, 另一方面降低了与之相配的存储器的存取速度的要求。另一方面降低了与之相配的存储器的存取速度的要求。取指取指取指取指取指取指取指取指得到数据得到数据等待等待执行执行执行执行执行执行执行执行8086/8088微处理器:16位和32位微处理器15 程序执行由取指令和执行指令的循环来完成的,每条指程序执行由取指令和执行指令的循环来完成的,每条指令执行完后令执行完后CPU必须等待到下条指令取出来后才能执行。必须等待到下条指令取出来后才能执行。取指取指执行执行取指取指执行执行.取
12、指取指执行执行时间坐标时间坐标对于8080与8085及较早的8位微处理器:16位和32位微处理器162 Intel 8086的寄存器结构AHAHALALBHBHBLBLCHCHCLCLDHDHDLDLSPSPBPBPSISIDIDIIPIPPSWPSWCSCSDSDSSSSSESESAXAXBXBXCXCXDXDX累加器累加器基址基址计数计数数据数据数据寄存器数据寄存器0 015150 07 78 815150 015150 01515附加数据段附加数据段堆栈段堆栈段数据段数据段代码段代码段段寄存器段寄存器指令指针指令指针状态标志状态标志控制寄存器控制寄存器堆栈指针堆栈指针基址指针基址指针 源
13、变址源变址目的变址目的变址指针寄存器指针寄存器变址寄存器变址寄存器通通用用寄寄存存器器16位和32位微处理器17Intel 8086的寄存器结构标志寄存器标志寄存器OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 9101016位和32位微处理器181 1、通用寄存器、通用寄存器通用寄存器包括:通用寄存器包括: 数据寄存器、地址指针寄存器、变址寄存器。数据寄存器、地址指针寄存器、变址寄存器。 数据寄存器包括数据寄存器包括: AX : AX 、BX BX 、CX CX 、DX DX 。 地址指针寄存器包括地址指
14、针寄存器包括: SP : SP 、 BP BP 。 变址寄存器包括变址寄存器包括: SI : SI 、 DI DI 。2 2、段寄存器、段寄存器 段寄存器包括段寄存器包括: CS : CS 、 SS SS 、 DS DS 、 ES ES 。3 3、控制寄存器、控制寄存器 控制寄存器包括:控制寄存器包括:IP IP 、PSWPSW。Intel 8086的寄存器结构16位和32位微处理器191 1、通用寄存器、通用寄存器(1 1)数据寄存器)数据寄存器AXAX、BXBX、CXCX、DX DX 作为通用寄存器。作为通用寄存器。 用来暂存计算过程中所用到的操作数,结果或其它信息。用来暂存计算过程中所用
15、到的操作数,结果或其它信息。 访问形式访问形式: : 可以用字(可以用字(16位)位)的形式访问的形式访问; ;也可以用字节(也可以用字节(8 8位)形式访问位)形式访问, ,它们的高它们的高8 8位记作位记作 : AH : AH 、 BH BH 、 CH CH 、 DH DH 。它们的低它们的低8 8位记作位记作 : AL : AL 、BL BL 、CL CL 、DL DL 。Intel 8086的寄存器结构16位和32位微处理器20AX(Accumulator)作为累加器。)作为累加器。 它是算术运算的主要寄存器,所有它是算术运算的主要寄存器,所有I/O指令都使用指令都使用这一寄存器与外部
16、设备交换数据。这一寄存器与外部设备交换数据。例:例: IN AL , 20HOUT 30H , AXIntel 8086的寄存器结构16位和32位微处理器21BXBase用作基址寄存器使用。用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。在计算内存储器地址时,经常用来存放基址。例:例:MOV AX, BX+03HIntel 8086的寄存器结构16位和32位微处理器22CXCount可以作计数寄存器使用。可以作计数寄存器使用。 在循环在循环LOOP指令和串处理指令中用作隐含计数器。指令和串处理指令中用作隐含计数器。例:例:MOV CX , 200HAGAIN:LOOP AGAIN
17、 ;(;(CX)-1(CX),结果结果 0转转AGAINIntel 8086的寄存器结构16位和32位微处理器23DXDataDXData可以作为数据寄存器使用。可以作为数据寄存器使用。一般在双字长乘除法运算时,一般在双字长乘除法运算时, 把把DXDX和和AXAX组合在一起存放一个双组合在一起存放一个双字长字长(32(32位位) )数,数,DXDX用来存放高用来存放高1616位位; ; 对某些对某些I/OI/O操作操作DXDX可用来存放可用来存放I/OI/O的端口地址(口地址的端口地址(口地址 256256)。)。例:例:MUL BX MUL BX ; (AX); (AX) (BX)(BX)(
18、DX)(AX)(DX)(AX)例例: :IN AL , DXIN AL , DXIntel 8086的寄存器结构16位和32位微处理器24(2)地址指针与变址寄存器)地址指针与变址寄存器: 段起始地址段起始地址 SP、BP、SI、DI 四个四个16位寄存器。位寄存器。以字为单位在运算过程中存放操作数,以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。经常用以在段内寻址时提供偏移地址。 段内偏移地址段内偏移地址段地址段地址 :只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。指在段内某内存单元物理地址相对段起始地
19、址的偏移值。 高高16位值位值 0000BIntel 8086的寄存器结构16位和32位微处理器25地址指针寄存器地址指针寄存器(SP 、 BP ) SP(stack pointer)堆栈指针寄存器堆栈指针寄存器 用来指示栈顶的偏移地址用来指示栈顶的偏移地址, 必须与必须与SS段寄存器联合使用确定实际地址。段寄存器联合使用确定实际地址。 堆栈和指针如下页图所示。堆栈和指针如下页图所示。 BP(base pointer)基址指针寄存器基址指针寄存器 可以与可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。寄存器联合使用来确定堆栈段中某一存储器单元地址。Intel 8086的寄存器结构16
20、位和32位微处理器268086系统存储器与总线连接系统存储器与总线连接堆栈和指针堆栈和指针设设: ( SS)=3F00H,(SP)=0060H堆栈和指针如下图:堆栈和指针如下图:堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,严格按照后进先出的工作原则。严格按照后进先出的工作原则。数据总线数据总线地址总线地址总线D7D0D7D01 M X 81 M X 8位存储体位存储体A19A0A19A000000H00000HFFFFFHFFFFFHA19A0A19A0.a1a1a0a0栈底栈底4EFFFH4EFFFH3F060H3F060H(SP)
21、=60H(SP)=60H3F000H3F000H(SS)=3F00H(SS)=3F00H16位和32位微处理器27 变址寄存器变址寄存器(SI 、 DI)SISource Index Register 源变址寄存器。源变址寄存器。DIDestination Index 目的变址寄存器。目的变址寄存器。使用场合:常用于变址寻址。使用场合:常用于变址寻址。 一般与一般与DS联用,用来确定数据段中某一存储单元的地址,联用,用来确定数据段中某一存储单元的地址, SI , DI具有自动增量和自动减量功能具有自动增量和自动减量功能.例:例:MOV AX, SIIntel 8086的寄存器结构16位和32位
22、微处理器28在串处理指令中,在串处理指令中,SI、DI作为隐含的源变址和目的变址寄作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。存器分别达到在数据段和附加段中寻址的目的。 执行示意图如右图。执行示意图如右图。例:例:MOV SI , 2000HMOV DI , 3000HMOV CX, 100HCLD.MOVSB.3000H:2000H3000H:2000H3000H:2100H3000H:2100H5000H:3000H5000H:3000H5000H:3100H5000H:3100HDS:2000HDS:20FFHDS:2000HDS:20FFHES:3000HE
23、S:30FFHES:3000HES:30FFH(DS)(DS)(SI)(SI)(ES)(ES)(DI)(DI)存储器存储器 串处理指令执行示意图串处理指令执行示意图16位和32位微处理器292、段寄存器、段寄存器段寄存器段寄存器: 4个个16位段寄存器位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。用来识别当前可寻址的四个段,不可互换的使用。CSCode Segment Register 代码段寄存器代码段寄存器 用来识别当前代码段(程序一般放在代码段)。用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器数据段寄存
24、器 用来识别当前数据段寄存器。用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器,堆栈段寄存器, 用来识别当前堆栈段。用来识别当前堆栈段。ESExtra Segment Register附加段寄存器,附加段寄存器, 用来识别当前附加段。用来识别当前附加段。16位和32位微处理器303、控制寄存器、控制寄存器控制寄存器:控制寄存器:IP 、 PSWIPInstruction Pointer指令指针寄存器指令指针寄存器 用来存储代码段中的偏移地址用来存储代码段中的偏移地址; 程序运行过程中程序运行过程中IP始终指向下一次要取出的指令偏移地址。始终指向下一次要取出
25、的指令偏移地址。 IP要与要与CS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。PSW(Processor States Word Program)程序状态字寄存器,程序状态字寄存器, 16位寄存器。位寄存器。 由状态标志、控制标志构成。由状态标志、控制标志构成。只用了其中只用了其中9位位, 6位状态标志位状态标志 , 3位控制标志。如下表示。位控制标志。如下表示。OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 9101016位和32位微处理器31q状态标志状态标志: :用来记录程
26、序中运行结果的状态信息作为用来记录程序中运行结果的状态信息作为后续条件转移指令的转移控制条件。后续条件转移指令的转移控制条件。状态包括状态包括6 6位:位:CF CF 、 PF PF 、 AF AF 、 ZF ZF 、 SF SF 、 OF OF 。 OFOF(Overflow FlagOverflow Flag)溢出标志(一般指补码溢出)溢出标志(一般指补码溢出)OF=1OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢:在运算过程中,如操作数超过了机器表示的范围称为溢出。出。OF=0OF=0:在运算过程中,如操作数未超过了机器能表示的范围称:在运算过程中,如操作数未超过了机器能表示
27、的范围称为不溢出。为不溢出。字节允许范围字节允许范围 -128+127-128+127,字运算范围字运算范围 -32768+32767 -32768+32767 。16位和32位微处理器32SF(Sign Flag)符号标志)符号标志 SF=1:记录运算结果的符号为负。:记录运算结果的符号为负。SF=0:记录运算结果的符号为正。:记录运算结果的符号为正。ZF(Zero Flag)零标志)零标志 ZF=1:运算结果为:运算结果为0。 ZF=0:运算结果不为:运算结果不为0。CF(Carry Flag)进位标志)进位标志 CF=1:记录运算时从最高有效位产生进位值。:记录运算时从最高有效位产生进位
28、值。CF=0:记录运算时从最高有效位不产生进值。:记录运算时从最高有效位不产生进值。16位和32位微处理器33 AF(Auxiliary Carry Flag)辅助进位标志)辅助进位标志AF=1:记录运算时第:记录运算时第3位(半个字节)产生进位值。位(半个字节)产生进位值。AF=0:记录运算时第:记录运算时第3位(半个字节)不产生进位值。位(半个字节)不产生进位值。 PF(Parity Flag)奇偶标志奇偶标志 PF=1: 结果操作数低结果操作数低8位中有偶数个位中有偶数个1。PF=0: 结果操作数低结果操作数低8位中有奇数个位中有奇数个1。用来为机器中传送信息时可能产生的代码出现情况提供
29、检验条用来为机器中传送信息时可能产生的代码出现情况提供检验条件。件。16位和32位微处理器34q 控制标志控制标志:对控制标志位进行设置后对控制标志位进行设置后,对其后的操作起控对其后的操作起控制作用。制作用。控制标志位包括控制标志位包括3位位: TF、 IF 、 DF 。 跟踪(陷阱)标志跟踪(陷阱)标志TF、中断标志、中断标志IF 、方向标志方向标志 DF 。 TF(Trap Flag)跟踪跟踪(陷阱陷阱)标志位标志位 TF=1 ,每执行一条指令后,自动产生一次内部中断,每执行一条指令后,自动产生一次内部中断,使使CPU处于单步执行指令工作方式,便于进行程序调试,用处于单步执行指令工作方式
30、,便于进行程序调试,用户能检查程序。户能检查程序。 TF=0, CPU正常工作,不产生陷阱。正常工作,不产生陷阱。 16位和32位微处理器35IF(InteruptIF(Interupt Flag) Flag)中断标志中断标志 位位 IF=1, IF=1, 允许外部可屏蔽中断允许外部可屏蔽中断。CPUCPU可以响应可屏蔽中断请求。可以响应可屏蔽中断请求。 IF=0, IF=0, 关闭中断关闭中断。CPUCPU禁止响应可屏蔽中断请求。禁止响应可屏蔽中断请求。 IFIF的状态对不可屏蔽中断和内部软中断没有影响。的状态对不可屏蔽中断和内部软中断没有影响。 DFDF( (DirectionDirect
31、ion Flag) Flag)方向标志位方向标志位 DF=1,DF=1,每次每次串处理操作串处理操作后使变址寄存器后使变址寄存器SISI和和DIDI减量减量,使串处理从,使串处理从高地址向低地址方向处理。高地址向低地址方向处理。 DF=0,DF=0,每次每次串处理操作串处理操作后使变址寄存器后使变址寄存器SISI和和DIDI增量增量, , 使串处理从使串处理从低地址向高地址方向处理。低地址向高地址方向处理。 DFDF方向标志位是在串处理指令中控制处理信息的方向标志位是在串处理指令中控制处理信息的方向方向用的。用的。16位和32位微处理器36控制信息控制信息: :由系统程序或用户程序根据需要用指
32、令来设置的。由系统程序或用户程序根据需要用指令来设置的。 状态信息状态信息: :由中央处理器由中央处理器, ,根据计算结果自动设置的,根据计算结果自动设置的, 机器提供了设置状态信息指令机器提供了设置状态信息指令, ,必要时必要时, ,程序员可以用程序员可以用这些指令来建立状态信息。这些指令来建立状态信息。16位和32位微处理器371 10 00 00 01 11 10 01 10 00 00 01 10 01 10 00 00 00 01 11 10 00 01 10 00 00 00 01 11 10 00 01 1+ +0 01 11 11 11 10 01 10 01 10 01 10
33、 01 10 01 10 0标志标志: 运算结果最高位为运算结果最高位为0SF=0; 运算结果本身运算结果本身0 ZF=0 低低8位中位中1的个数为奇数个的个数为奇数个 PF=0; 最高位没有进位最高位没有进位 CF=0 第三位向第四位无进位第三位向第四位无进位 AF=0; 次高位向最高位没有进位次高位向最高位没有进位 ,最高位向前没有进位,最高位向前没有进位 , OF=0。例例1:执行两个数的加法,分析对标志位的影响。:执行两个数的加法,分析对标志位的影响。16位和32位微处理器38标志标志:运算结果最高位为运算结果最高位为1, SF=1 ;运算结果本身不为运算结果本身不为0, ZF=0 ;
34、最高位向前无进位,最高位向前无进位, CF=0 次高位向最高位产生进位次高位向最高位产生进位,而最高位向前没有进位,而最高位向前没有进位, OF=1 ;结果低结果低8位含偶数个位含偶数个1, PF=1 ;第三位向第四位有进位第三位向第四位有进位, AF=1 。在绝大多数情况下,一次运算后并不影响所有标志,在绝大多数情况下,一次运算后并不影响所有标志,程序也并不需要对所有的标志作全面的关注。程序也并不需要对所有的标志作全面的关注。一般只是在某些操作后一般只是在某些操作后,对其中某个标志进行检测。对其中某个标志进行检测。例例2:执行两个数的加法,分析对标志位的影响。:执行两个数的加法,分析对标志位
35、的影响。0 01 10 01 10 00 00 00 01 11 11 10 00 01 11 10 00 01 10 00 00 01 10 01 10 01 11 10 01 10 01 10 0+ +1 11 10 00 00 01 10 01 11 10 00 01 11 10 00 01 1AF=1AF=1OF=1OF=116位和32位微处理器复位后相关寄存器的初始状态复位后相关寄存器的初始状态寄存器寄存器初始状态初始状态寄存器寄存器初始状态初始状态状态标志寄存器状态标志寄存器清清0 0IP0000HCSFFFFHDS0000HSS0000HES0000H指令队列寄存器指令队列寄存器
36、清空清空其他寄存器其他寄存器0000H16位和32位微处理器40q1 1、存储单元的地址和内容、存储单元的地址和内容q2 2、存储器地址分段、存储器地址分段q3 3、各段在存储器中分配、各段在存储器中分配3 80863 8086的存储器编址和的存储器编址和I/OI/O编址编址16位和32位微处理器411 1、存储单元的地址和内容及与、存储单元的地址和内容及与CPUCPU之间数据传送之间数据传送(1 1)、)、存储单元的地址和内容存储单元的地址和内容 存储器位编号:存储器位编号:80888088字长字长1616位,由二个字节组成,位编号如下:位,由二个字节组成,位编号如下: 高位字节高位字节 M
37、SBMSB(8 81515位)位) 低位字节低位字节LSBLSB(0 07 7位)位) 80888088内部的内部的 ALU ALU 能进行能进行16 16 位运算。位运算。 有关地址寄存器如有关地址寄存器如 SPSP、IPIP、BPBP、SISI、DI DI 等都是等都是1616位的。位的。0 01 12 23 34 45 56 67 78 89 91010111112121313141415150 01 12 23 34 45 56 67 716位和32位微处理器42 内存单元的地址和内容内存单元的地址和内容存储单元地址:按照字节编址存储单元地址:按照字节编址.1100 1111B1100
38、 1111B.物理地址物理地址内容内容00000H00000H00001H00001H00002H00002H00006H00006HFFFFFHFFFFFH16位和32位微处理器43存储单元的的内容:存储单元的的内容:一个存储单元有效的信息。一个存储单元有效的信息。机器字长是机器字长是1616位,位, 大部分数据以字节为单位表示,大部分数据以字节为单位表示, 一个字存入存储器占有相继的二个单元:一个字存入存储器占有相继的二个单元: 低位字节存入低地址,高位字节存入高地址。低位字节存入低地址,高位字节存入高地址。 字单元的地址采用它的低地址来表示。字单元的地址采用它的低地址来表示。例:例:字单
39、元字单元 : :(0004H0004H)=1234H, =1234H, 字节单元字节单元 : :(0004H0004H)=34H=34H 同一个地址既可以看作字节单元地址,同一个地址既可以看作字节单元地址, 又可看作字单元地址,需要根据使用情况确定。又可看作字单元地址,需要根据使用情况确定。字单元地址:可以是偶数也可以是奇数,字单元地址:可以是偶数也可以是奇数,34H34H12H12H1EH1EH2FH2FH0000H0000H0001H0001H0002H0002H0003H0003H0004H0004H0005H0005H0006H0006H.1234H1234H1235H1235H123
40、6H1236H.16位和32位微处理器44(2)、CPU和存储器或和存储器或I/O端口之间传送数据端口之间传送数据 8086 8086数据总线是数据总线是16位的。位的。讨论讨论CPU和存储器和存储器或或I/O端口之间传送数据方式:端口之间传送数据方式:q 字数据读字数据读/写操作写操作q 字节读字节读/写操作写操作16位和32位微处理器45q字数据读字数据读/写操作写操作(a) 操作数存放在偶地址开始两个存储单元或两个操作数存放在偶地址开始两个存储单元或两个 I/O端口中:端口中: 即操作数字的低即操作数字的低8位位在偶地址单元或在偶地址单元或 在偶地址端口;在偶地址端口; 高高8位位在奇地
41、址单元或在奇地址端口。在奇地址单元或在奇地址端口。在一个总线周期内完成(通常在一个总线周期内完成(通常4个时钟周期)个时钟周期)16位数据传送,位数据传送,操作数必须存放在偶地址开始两个存储单元或两个操作数必须存放在偶地址开始两个存储单元或两个 I/O端口中。端口中。16位和32位微处理器图 存储体与总线的连接DBD15D8 D7D0 奇存储体 A0ABBHEA19 A1偶存储体 CSA19A1D7D0 CSA19A1D7D0 8086CPU访问(读或写)存储器由信号BHE和A0组合形成。 16位和32位微处理器47CPUCPU低8位数据低8位数据高8位数据高8位数据高8位数据线低地址低地址高
42、地址高地址奇地址奇地址偶地址偶地址内存内存读/写偶地址字读/写偶地址字低8位数据线低8位数据线对应的偶地址单元对应的偶地址单元/偶地址端口偶地址端口数据通过数据总线低数据通过数据总线低8位传输。位传输。对应的奇地址单元对应的奇地址单元/奇地址端口奇地址端口数据通过数据总线高数据通过数据总线高8位传输。位传输。字数据字数据读读/写偶地址字操作如下图:写偶地址字操作如下图:16位和32位微处理器48操作数存放在奇地址开始两个存储单元或两个操作数存放在奇地址开始两个存储单元或两个 I/O端口中端口中如下图所示:如下图所示:读读/写奇地址字写奇地址字数据数据数据数据CPUCPU空闲空闲奇地址奇地址偶地
43、址偶地址高地址高地址低地址低地址内存内存第一个总线周期第一个总线周期数据数据数据数据CPUCPU奇地址奇地址偶地址偶地址高地址高地址低地址低地址内存内存第二个总线周期第二个总线周期空闲空闲16位和32位微处理器49在第一个总线周期中在第一个总线周期中:对应于奇地址单元或奇地址端口字节(操作字低对应于奇地址单元或奇地址端口字节(操作字低8位)位)通过数据总线高通过数据总线高8位进行传输,而数据总线低位进行传输,而数据总线低8位处于空闲状态;位处于空闲状态;在第二个总线周期中在第二个总线周期中: 对应于偶地址单元或偶地址端口字节(操作字高对应于偶地址单元或偶地址端口字节(操作字高8位)位)通过数据
44、总线低通过数据总线低8位进行传输,而数据总线高位进行传输,而数据总线高8位处于空闲状态位处于空闲状态.由此可见,由此可见, 操作数存放在奇地址开始两个存储单元操作数存放在奇地址开始两个存储单元/两个两个 I/O端口中进行端口中进行数据传输,数据传输,8086需要二个总线周期。需要二个总线周期。16位和32位微处理器50q 字节读字节读/写操作:写操作: 对偶地址单元对偶地址单元/偶地址端口的字节数据进行读偶地址端口的字节数据进行读/写写如下图所示:如下图所示:在一个总线周期中,只有数据总线的低在一个总线周期中,只有数据总线的低8位传输数据,位传输数据, 高高8位处于空闲状态。位处于空闲状态。数
45、据数据CPUCPU偶地址偶地址高地址高地址低地址低地址内存内存空闲空闲奇地址奇地址 读/写偶地址字节 读/写偶地址字节16位和32位微处理器51 对奇地址单元对奇地址单元/奇地址端口的字节数据进行读奇地址端口的字节数据进行读/写写如下图所示:如下图所示: 在一个总线周期中,只有数据总线的高在一个总线周期中,只有数据总线的高8位传输数据,位传输数据, 而低而低8位处于空闲状态。位处于空闲状态。数据数据CPUCPU空闲空闲奇地址奇地址高地址高地址低地址低地址内存内存偶地址偶地址读/写奇地址字节读/写奇地址字节16位和32位微处理器52 80888088数据总线只有数据总线只有8位。位。讨论讨论CP
46、U和存储器和存储器或或I/O端口端口 之间传送数据:之间传送数据:每个总线周期只传输每个总线周期只传输1个字节,个字节,所以对每个字操作要增加所以对每个字操作要增加4个时钟周期。个时钟周期。 (4)、存储器特性:)、存储器特性:存储器的内容是取之不尽的。存储器的内容是取之不尽的。 即从某个单元取出其内容后,该单元仍保持原来的内容即从某个单元取出其内容后,该单元仍保持原来的内容 不变,可以重复取出;不变,可以重复取出; 只有存入信息后,原有的内容自动消失。只有存入信息后,原有的内容自动消失。16位和32位微处理器538086有有20条地址总线,直接寻址能力为条地址总线,直接寻址能力为220=1M
47、字节。字节。用用16进制数表示进制数表示1M字节的地址范围应为字节的地址范围应为00000HFFFFFH。(1)、)、 8086内部内部20位物理地址形成位物理地址形成(2)、逻辑地址与物理地址)、逻辑地址与物理地址2、存储器地址分段:、存储器地址分段:16位和32位微处理器54 (1)、)、8088内部内部20位物理地址形成位物理地址形成 存储器地址分段存储器地址分段 8088地址总线是地址总线是20位的,位的,CPU中的寄存器是中的寄存器是16位的,位的,20位地址无法用位地址无法用16位寄存器表示,必须分段。位寄存器表示,必须分段。程序员在编制程序时把存储器划分成段。程序员在编制程序时把
48、存储器划分成段。段内地址段内地址16位位,每个段的大小最大可达每个段的大小最大可达64KB;实际可以根据需要来确定段大小,可以是实际可以根据需要来确定段大小,可以是1,100,1000,在在64K范围内的任意字节数。范围内的任意字节数。IBM PC机对段的起始地址有限制,机对段的起始地址有限制,即段不能从任意地址开始:即段不能从任意地址开始:必须从任一小段(必须从任一小段(paragraph)的首地址开始。)的首地址开始。16位和32位微处理器55 小段的概念小段的概念从从0地址开始每地址开始每16字节为一小段,字节为一小段,对于对于16位地址总线,段内存储器小段地址如下:位地址总线,段内存储
49、器小段地址如下:如:如: 0000H,0001H,0002H,000EH,000FH一个小段一个小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, , FFFEH, FFFFH 其中:第一列就是每个小段的首地址。其中:第一列就是每个小段的首地址。16位和32位微处理器56每个小段首地址特征:每个小段首地址特征:在在1616进制表示的地址中,最低位为进制表示的地址中,最低位为0H0H(即(即2020位地址的低位地址的低4 4位为位为0000B0000B)。)。在在1M1M字节的地址
50、空间,共有字节的地址空间,共有64K64K个小段其首地址为:个小段其首地址为:0000 0H0000 0H0001 0H0001 0H4123 0H4123 0H4124 0H4124 0HFFFE 0HFFFE 0HFFFF 0HFFFF 0H16位和32位微处理器57 20位物理地址形成位物理地址形成 物理地址:物理地址: 在在1M字节存储器里,每个存储单元都有一个唯一的字节存储器里,每个存储单元都有一个唯一的20位地位地址作为该存储单元的物理地址。址作为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的访问存储器时,必须先确定所要访问的存储单元的物理地址才能取出(或
51、存入)该单元中的内容。物理地址才能取出(或存入)该单元中的内容。 20位物理地址形成:由位物理地址形成:由16位段地址和位段地址和16位偏移地址组成。位偏移地址组成。段地址段地址:只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移指在段内某内存单元物理地址相对段起始地址的偏移值。值。16位和32位微处理器58物理地址计算方法:物理地址计算方法:即把段地址左移即把段地址左移4位再加上偏移地址值形成物理地址,写成:位再加上偏移地址值形成物理地址,写成: 物理地址物理地址= 16d 段地址段地址+偏移地址。偏移地址。 * 每个存储单元只有
52、唯一的物理地址。每个存储单元只有唯一的物理地址。 但可由不同的段地址和不同的偏移地址组成。但可由不同的段地址和不同的偏移地址组成。16位段地址16位段地址0000000016位偏移地址16位偏移地址0 015150 0151520位物理地址20位物理地址0 01919+ +16位和32位微处理器59(3)、逻辑地址与物理地址)、逻辑地址与物理地址 逻辑地址与物理地址概念逻辑地址与物理地址概念 逻辑地址与物理地址概念如下页图所示。逻辑地址与物理地址概念如下页图所示。逻辑地址:由段基址和段内偏移地址组成的地址,逻辑地址:由段基址和段内偏移地址组成的地址, 段基址和段内偏移地址都是段基址和段内偏移地
53、址都是16位的无符号二进制数,位的无符号二进制数, 在程序设计时使用。在程序设计时使用。物理地址:存储器的绝对地址(物理地址:存储器的绝对地址(20位的实际地址)位的实际地址), 范围从范围从00000HFFFFFH , 是由是由CPU访问存储器时访问存储器时 由地址总线发出的地址。由地址总线发出的地址。存储器管理:将程序中逻辑地址转移为物理地址的机构。存储器管理:将程序中逻辑地址转移为物理地址的机构。16位和32位微处理器60段基址段基址0 0 0 00 0 0 03 2 1 03 2 1 015 015 0偏移地址偏移地址基址加法器基址加法器物理地址物理地址0 015150 01919 物
54、理地址的形成物理地址的形成.20000H20000H25F60H25F60H25F61H25F61H25F62H25F62H25F63H25F63H2000H2000H段基址段基址逻逻辑辑地地址址段内偏移地址段内偏移地址5F62H5F62H逻辑地址与物理地址逻辑地址与物理地址16位和32位微处理器61逻辑地址来源逻辑地址来源操作类型操作类型正常使用(隐含)正常使用(隐含)段基址段基址可替换可替换段地址段地址偏移偏移地址地址物理地址计算物理地址计算取指令取指令CS无无IP(CS) 16d+(IP)堆栈操作堆栈操作SS无无SP(SS) 16d+(SP)BP间址间址SSCS,DS,ES有效地址有效地
55、址EA (SS) 16d+EA存取变量存取变量DSCS,ES,SS有效地址有效地址EA (DS ) 16d+EA源字符串源字符串DSCS,ES,SSSI(DS) 16d+(SI)目标字符串目标字符串ES无无DI(ES) 16d+(DI)16位和32位微处理器62取指令:取指令:自动选择代码段寄存器自动选择代码段寄存器CS,再加上由再加上由IP决定的决定的16位偏移量,位偏移量,计算得到要取的指令计算得到要取的指令20位物理地址。位物理地址。堆栈栈顶操作:堆栈栈顶操作:自动选择堆栈段寄存器自动选择堆栈段寄存器SS,再加上由再加上由SP决定的决定的16位偏移量,位偏移量,计算得到堆栈栈顶操作需要的
56、计算得到堆栈栈顶操作需要的20位物理地址。位物理地址。16位和32位微处理器63涉及到操作数:涉及到操作数:自动选择数据段寄存器自动选择数据段寄存器DS或附加段寄存器或附加段寄存器ES,再加上再加上16位偏移量,计算得到操作数的位偏移量,计算得到操作数的20位物理地址。位物理地址。其中:其中:16位偏移量位偏移量: 包含在:指令中的直接地址包含在:指令中的直接地址 某个某个16位地址寄存器的值位地址寄存器的值 指令中的位移量指令中的位移量+16位地址寄存器中值等。位地址寄存器中值等。 16位偏移量关键取决于指令的寻址方式。位偏移量关键取决于指令的寻址方式。16位和32位微处理器64代码段代码段
57、数据段数据段堆栈段堆栈段CSCSIPIPDSDSSI,DI或BXSI,DI或BXSSSSSP或BPSP或BP段寄存器和其他寄存器组合指向存储单元示意图段寄存器和其他寄存器组合指向存储单元示意图归纳段寄存器和其他寄存器组合指向存储单元示意图如下:归纳段寄存器和其他寄存器组合指向存储单元示意图如下:16位和32位微处理器653 3、各段在存储器中分配、各段在存储器中分配 各段在存储器中分配分各段在存储器中分配分4 4种情况讨论:种情况讨论:(1 1)由操作系统负责分配)由操作系统负责分配一般情况,各段在存储器中的分配是由操作系统负责。一般情况,各段在存储器中的分配是由操作系统负责。每个段可以独立地
58、占用每个段可以独立地占用64K64K存储区。存储区。(2 2)各段也可以允许重迭)各段也可以允许重迭 每个段的大小允许根据实际需要分配,不一定要占每个段的大小允许根据实际需要分配,不一定要占64KB64KB。 每个存储单元的内容不允许发生冲突每个存储单元的内容不允许发生冲突 (段可重迭,但使用时防止冲突)。(段可重迭,但使用时防止冲突)。16位和32位微处理器66( 3 3)在程序的首部设定各段寄存器的值)在程序的首部设定各段寄存器的值如果程序中的四个段都是如果程序中的四个段都是64K64K的范围之内,的范围之内,程序运行时所需要的信息都在本程序所定义的段区之内,程序运行时所需要的信息都在本程
59、序所定义的段区之内,程序员只要在程序的首部设定各段寄存器的值就可以了。程序员只要在程序的首部设定各段寄存器的值就可以了。 ( 4 4)动态地修改段寄存器的内容)动态地修改段寄存器的内容 如果程序的某一段(如数据段)在程序运行过程如果程序的某一段(如数据段)在程序运行过程中会超过中会超过64K64K空间,或者程序中可能访问除本身四个段以空间,或者程序中可能访问除本身四个段以外的其他段区的信息,外的其他段区的信息, 那么在程序中必须动态地修改段那么在程序中必须动态地修改段寄存器的内容。寄存器的内容。16位和32位微处理器6764K程序64K程序64K数据64K数据64K堆栈64K堆栈00000H0
60、0000H01000H01000H21000H21000H46000H46000H64K附加数据64K附加数据A0000HA0000H0100H0100H2100H2100H4600H4600HA000HA000H段寄存器段寄存器CSCSDSDSSSSSESES4K程序4K程序2K数据2K数据100H堆栈100H堆栈00000H00000H01000H01000H02000H02000HA0000HA0000H0100H0100H0200H0200H0280H0280H段寄存器段寄存器CSCSDSDSSSSS02800H02800H64KB为一段为一段代码段范围代码段范围:01000H10FF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届沂源县三上数学期末质量检测试题含解析
- 水利水电工程毕业生就业方向分析试题及答案
- 规划设计中正确的生活方式
- 燃气中毒的急救
- 礼仪课程设计案例分享
- 公共关系学公共政策试题及答案
- 2025年经济法复习及考题情报
- 隧道堵漏安全培训课件
- 临床横纹肌溶解症发病机制治疗护理措施诊断及健康教育急救护理
- 眼科病人护理概述
- 光谱分析在大气污染物成分识别中的应用研究
- 2025年高中生物学业水平考试知识点归纳总结(复习必背)
- 野生菌蘑菇的试题及答案
- 拆桥补偿合同协议
- 电梯维保考试题及答案
- 企业技术考核试题及答案
- 2025年广东省外语艺术职业学院单招综合素质考试题库附答案
- 8.2 做中华传统美德的践行者 同步课件 -2024-2025学年统编版道德与法治七年级下册
- 室间隔缺损的术后护理
- Unit 5 Here and Now SectionB Project 教学设计 2024-2025学年人教版(2024)七年级英语下册
- 武汉2025届高中毕业生二月调研考试数学试题及答案
评论
0/150
提交评论