资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第二章,16,位和,32,位微处理器,2.1,微型计算机结构,2.2,16,位微处理器,8086,2.3,32,位微处理器,80386,2.4,32,位微处理器,Pentium,2.5,Itanium,微处理器概述,1,2.1,微型计算机结构,1,、微型计算机外部结构,2,、微型计算机内部结构,2,1,、微型计算机外部结构,微型计算机外部结构如下图所示,(,三总线结构),微型计算机外部结构,3,微型计算机外部结构,由上图看出,微机与外部交换信息通过总线控制。,采用三总线结构,AB,、,DB,、,CB.,三组总线:,地址总线,AB,(ADDRESS BUS):,通常,16,位,单向,,A15A0,,可寻址,2,16,=64KB,内存单元。,A7A0,,可寻址,2,8,=256,外设接口。,数据总线,DB,(DATA BUS):,通常,8,位,,D7D0,,双向,实现,CPU,与,I/O,传送。,控制总线,CB,(CONTROL BUS):,传送控制信号,。,4,2,、微型计算机内部结构,由于,CPU,受成品率,成本,集成在单片上等原因。,严格规定,40,条引脚,引脚数就限制了总线的数量。,外部,采用三总线结构,AB,、,DB,、,CB,。,内部,采用单总线,即内部所有单元,电路都挂在内部总线上,,分时,使用总线。,通常微处理机内部结构及外部连接方法如下图所示。,5,微型计算机内部结构,6,微型计算机内部结构,内部采用单总线结构,在任何时候只有一个内部设备能使用内部总线,各设备之间必须分时使用内部总线,,因而速度受到影响。,只有要求速度高的位片机中,采用内部多总线结构。,7,2.2 16,位微处理器,8086,2.2.1 Intel,8086,的结构,2.2.2 Intel,8086,的引脚信号和工作模式,2.2.3 Intel,8086,的操作和时序,8,2.2.1,Intel,8086,的结构,Intel 8086,的编程结构,Intel 8086,的寄存器结构,Intel 8086,的存储器编址和,I/O,编址,9,Intel 8086,的结构,编程结构:,从程序员和使用者的角度来看的结构。,这种结构与,CPU,内部的物理结构和实际布局有区别。,分两部分:,1,、总线接口单元,BIU,(,Bus Interface Unit,),2,、执行部件,EU,(,Execution Unit,),10,Intel 8086,的结构特点,(1),内部结构 是,16,位的,(内部寄存器,内部运算部件,内部操作按,16,位设计);,(2),外部数据总线,16,条,能处理,16,位数据,也能处理,8,位数据;,(具有,16,位运算指令,包括*、,/,指令),(3),汇编语言与,8080/8085,兼容,即能执行整套,8080/8085,的指令,.,增加了许多,16,位操作指令;,(4) 20,条地址总线,直接寻址能力,1M,字节;,(5) 40,条引线封装;,(6),单相时钟;,(7),电源为,5V,。,8086,与,8088,的主要区别在于,8086,的外部数据总线,16,位。,11,8086,编程结构,12,(,1,),总线接口单元,BIU,功能:,负责与 存储器、,I/O,端口传送数据,。,具体讲:,总线接口部件要从内存,取指令送到指令队列,;,CPU,执行指令时,要配合执行部件从指定的内存单元,或者外设端口中,取数据,,将,数据传送给执行部件,;,或把执行部件的操作,结果传送给指定的,M,或,I/O,口,。,1,、总线接口单元,BIU,(,Bus Interface Unit,),13,4,个段地址寄存器(,CS,、,DS,、,ES,、,SS,),,16,位指令指针寄存器,IP,,,20,位的地址加法器,(16d,段地址,+,偏移地址物理地址,),6,字节(,8086,)或,4,字节(,8088,)的指令队列,总线控制电路,:,处理器与外界总线联系的转接电路。,包括三组总线:,20,位地址总线,,16,位,(8086),或,8,位(,8088,)双向数据总线,一组控制总线。,(,2,)总线接口单元,BIU,组成,14,指令队列,8086,的指令队列为,6,个字节,8088,的指令队列为,4,个字节。,不论是,8086,还是,8088,都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使,BIU,具有预取指令的功能,,是一种先进先出(,FIFO,),的数据结构,。,(3 ),说 明,15,说 明,指令执行顺序,顺序指令执行,:指令队列存放紧接在执行指令后面的那一条指令。,执行转移指令,:,BIU,清除指令队列中的内容,从新的地址取入指 令,立即送往执行单元,然后再从新单元开始重 新填满队列。,16,地址加法器的作用:,用来形成,20,位物理地址,如,CS=F010H,,,IP=1000H,,则要访问的物理地址是:,CS*16+IP=F1100H,说 明,17,(,1,)、,功能,:,负责指令执行。,(,2,)、,组成:,4,个通用寄存器:,AX,、,BX,、,CX,、,DX;,4,个专用寄存器:,BP,、,SP,、,SI,、,DI;,标志寄存器(,PSW,):,9,个标志位,其中,6,个条件标志位用于存放结果状态,;,2,、,EU,(,Execution Unit,)执行单元,18,算术逻辑单元:,16,位加法器,用于对寄存器和指令操作数进行算术或逻辑运算;,EU,控制系统:,接受,从总线接口单元的,指令队列中取来的指令代码,,对其译码和向,EU,内各有关部分,发出时序命令信号,,,协调执行指令规定的操作,。,19,由此可见,,8086/8088,取指部分与执行部分是分开的,。,在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队;,在一条指令执行完成后,就可以立即执行下一条指令,减少,CPU,为取指令而等待的时间,提高,CPU,的利用率和整个运行速度。,20,BIU,和,EU,分开,取指和执行可以重迭,,大大减少了等待取指所需的时间,提高,CPU,的利用率。,重迭操作技术:,一方面提高了整个执行速率,,另一方面降低了与之相配的存储器的存取速度的要求,。,8086/8088,微处理器,:,21,程序执行由取指令和执行指令的循环来完成的,,每条指令执行完后,CPU,必须等待到下条指令取出来后才能执行。,对于,8080,与,8085,及较早的,8,位微处理器,:,22,Intel 8086,的寄存器结构,23,Intel 8086,的寄存器结构,标志寄存器,OF,DF,IF,TF,SF,ZF,AF,PF,CF,0,15,2,4,5,6,7,8,9,10,24,1,、通用寄存器,通用寄存器包括:,数据寄存器、地址指针寄存器、变址寄存器,。,数据寄存器包括,: AX,、,BX,、,CX,、,DX,。,地址指针寄存器包括,: SP,、,BP,。,变址寄存器包括,: SI,、,DI,。,2,、段寄存器,段寄存器包括,: CS,、,SS,、,DS,、,ES,。,3,、控制寄存器,控制寄存器包括:,IP,、,PSW,。,Intel 8086,的寄存器结构,25,1,、通用寄存器,(,1,)数据寄存器,AX,、,BX,、,CX,、,DX,作为通用寄存器。,用来,暂存,计算过程中所用到的,操作数,结果或其它信息,。,访问形式,:,可以用字(,16,位),的形式访问,;,也可以用字节(,8,位)形式访问,它们的,高,8,位记作,: AH,、,BH,、,CH,、,DH,。,它们的,低,8,位记作,: AL,、,BL,、,CL,、,DL,。,Intel 8086,的寄存器结构,26,AX,(,Accumulator,)作为,累加器,。,它,是算术运算的主要寄存器,所有,I/O,指令都使用这一寄存器与外部设备交换数据,。,例:,IN AL , 20H,OUT 30H , AX,Intel 8086,的寄存器结构,27,BX,Base,用作,基址寄存器,使用。,在,计算内存储器地址时,经常用来存放基址。,例:,MOV AX, BX+03H,Intel 8086,的寄存器结构,28,CX,Count,可以,作计数寄存器,使用。,在,循环,LOOP,指令和串处理指令中用作隐含计数器,。,例:,MOV CX , 200H,AGAIN:,LOOP,AGAIN,;,(,CX)-1,(CX),结果,0,转,AGAIN,Intel 8086,的寄存器结构,29,DX,Data,可以,作为数据寄存器使用。,一般在,双字长乘除法运算时,,,把,DX,和,AX,组合在一起存放一个双字长,(32,位,),数,,DX,用来存放高,16,位,;,对某些,I/O,操作,DX,可用来存放,I/O,的端口地址(,口地址,256,)。,例:,MUL BX ; (AX),(BX)(DX)(AX),例,:IN AL , DX,Intel 8086,的寄存器结构,30,(,2,)地址指针与变址寄存器,:,段起始地址,SP,、,BP,、,SI,、,DI,四个,16,位寄存器。,以字为单位在运算过程中存放操作数,,经常用以在,段内寻址时提供偏移地址。,段内偏移地址,段地址,:,只取段起始地址高,16,位值。,偏移地址,:,指在段内某内存单元物理地址相对段起始地址的偏移值。,高,16,位值,0000B,Intel 8086,的寄存器结构,31,地址指针寄存器,(SP,、,BP ),SP,(,stack pointer,),堆栈指针寄存器,用来,指示栈顶的偏移地址,必须,与,SS,段寄存器,联合使用确定实际地址。,堆栈和指针如下页图所示。,BP,(,base pointer,),基址指针寄存器,可以,与,SS,寄存器联合使用来确定,堆栈段,中,某一,存储器单元地址,。,Intel 8086,的寄存器结构,32,8086,系统存储器与总线连接,堆栈和指针,设,: ( SS)=3F00H,(SP)=0060H,堆栈和指针如下图:,堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,,严格按照后进先出的工作原则。,数据总线,地址总线,D7D0,1 M X 8,位存储体,A19A0,00000H,FFFFFH,A19A0,.,.,a1,a0,栈底,4EFFFH,3F060H,(SP)=60H,3F000H,(SS)=3F00H,33,变址寄存器,(SI,、,DI),SI,Source Index Register,源变址寄存器。,DI,Destination Index,目的变址寄存器,。,使用场合:常用于变址寻址。,一般与,DS,联用,用来确定,数据段,中某一存储单元的地址,,SI , DI,具有自动增量和自动减量功能,.,例:,MOV AX, SI,Intel 8086,的寄存器结构,34,在串处理指令中,,SI,、,DI,作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。,执行示意图如右图。,例:,MOV SI , 2000H,MOV DI , 3000H,MOV CX, 100H,CLD.,MOVSB,.,串处理指令执行示意图,35,2,、段寄存器,段寄存器,:,4,个,16,位段寄存器,CS,、,DS,、,SS,、,ES,。,用来,识别当前可寻址的四个段,不可互换的使用。,CS,Code Segment Register,代码段寄存器,用来识别当前代码段(程序一般放在代码段)。,DS,Data Segment Register,数据段寄存器,用来识别当前数据段寄存器。,SS,Stack Segment Register,堆栈段寄存器,,用来识别当前堆栈段。,ES,Extra Segment Register,附加段寄存器,,,用来识别当前附加段。,36,3,、控制寄存器,控制寄存器,:,IP,、,PSW,IP,Instruction Pointer,指令指针寄存器,用来存储代码段中的偏移地址,;,程序运行过程中,IP,始终指向下一次要取出的指令偏移地址,。,IP,要与,CS,寄存器相配合才能形成真正的物理地址。,PSW,(,Processor States Word Program,),程序状态字寄存器,,16,位寄存器,。,由状态标志、控制标志构成。,只用了其中,9,位,6,位状态标志, 3,位控制标志,。如下表示。,37,状态标志,:,用来记录程序中运行结果的,状态信息,作为,后续条件转移指令的转移控制条件。,状态包括,6,位:,CF,、,PF,、,AF,、,ZF,、,SF,、,OF,。,OF,(,Overflow Flag,),溢出标志(一般指补码溢出),OF=1,:,在运算过程中,如操作数超过了机器表示的范围称为,溢出,。,OF=0,:,在运算过程中,如操作数未超过了机器能表示的范围称为,不溢出。,字节允许范围,-128,+127,,,字运算范围,-32768,+32767,。,38,SF,(,Sign Flag,),符号标志,SF=1,:,记录运算结果的,符号为负,。,SF=0,:,记录运算结果的,符号为正。,ZF,(,Zero Flag,),零标志,ZF=1,:,运算结果,为,0,。,ZF=0,:,运算结果,不为,0,。,CF,(,Carry Flag,),进位标志,CF=1,:,记录运算时,从最高有效位产生进位值。,CF=0,:,记录运算时,从最高有效位不产生进值,。,39,AF,(,Auxiliary Carry Flag,),辅助进位标志,AF=1,:,记录运算时,第,3,位(半个字节)产生进位值。,AF=0,:,记录运算时,第,3,位(半个字节)不产生进位值。,PF,(Parity Flag),奇偶标志,PF=1,:,结果操作数,低,8,位中有偶数个,1,。,PF=0:,结果操作数,低,8,位中有奇数个,1,。,用来为机器中传送信息时可能产生的代码出现情况提供检验条件。,40,控制标志,:,对控制标志位进行设置后,对其后的操作起控制作用。,控制标志位包括,3,位,:,TF,、,IF,、,DF,。,跟踪(陷阱)标志,TF,、,中断标志,IF,、,方向标志,DF,。,TF(,Trap Flag),跟踪,(,陷阱,),标志位,TF=1,每执行一条指令后,自动产生一次内部中断,,使,CPU,处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。,TF=0, CPU,正常工作,不产生陷阱,。,41,IF(Interupt,Flag),中断标志 位,IF=1,允许外部可屏蔽中断,。,CPU,可以响应可屏蔽中断请求。,IF=0,关闭中断,。,CPU,禁止响应可屏蔽中断请求。,IF,的状态对不可屏蔽中断和内部软中断没有影响。,DF,(,Direction,Flag),方向标志位,DF=1,每次,串处理操作,后使变址寄存器,SI,和,DI,减量,,使串处理从高地址向低地址方向处理。,DF=0,每次,串处理操作,后使变址寄存器,SI,和,DI,增量,使串处理从低地址向高地址方向处理。,DF,方向标志位是在串处理指令中控制处理信息的,方向,用的。,42,控制信息,:,由系统程序或用户程序,根据需要用指令来设置的。,状态信息,:,由中央处理器,根据计算结果自动设置的,,机器提供了设置状态信息指令,必要时,程序员可以用这些指令来建立状态信息。,43,在调试程序时,,DEBUG,提供了测试标志位的手段,,,用符号表示标志位的值,,每种标志位的符号如下表:,DEBUG,不提供,TF,的符号,用于单步方式操作。,44,标志,:,运算结果最高位为,0SF=0,;,运算结果本身,0 ZF=0,低,8,位中,1,的个数为奇数个,PF=0,;,最高位没有进位,CF=0,第三位向第四位无进位,AF=0,;,次高位向最高位没有进位 ,最高位向前没有进位, OF=0,。,例,1,:执行两个数的加法,分析对标志位的影响。,45,标志,:,运算结果最高位为,1,,,SF=1,;,运算结果本身不为,0,,,ZF=0,;,最高位向前无进位,,CF=0,次高位向最高位产生进位,而最高位向前没有进位,,OF=1,;,结果低,8,位含偶数个,1,,,PF=1,;,第三位向第四位有进位, AF=1,。,在绝大多数情况下,一次运算后并不影响所有标志,,程序也并不需要对所有的标志作全面的关注。,一般只是在,某些操作,后,对其中,某个标志,进行检测。,例,2,:执行两个数的加法,分析对标志位的影响。,46,1,、存储单元的地址和内容,2,、存储器地址分段,3,、各段在存储器中分配,Intel 8086,的存储器编址和,I/O,编址,47,1,、存储单元的地址和内容及与,CPU,之间数据传送,(,1,)、,存储单元的地址和内容,存储器位编号:,8088,字长,16,位,由二个字节组成,位编号如下:,高位字节,MSB,(,8,15,位),低位字节,LSB,(,0,7,位),8088,内部的,ALU,能进行,16,位运算。,有关地址寄存器如,SP,、,IP,、,BP,、,SI,、,DI,等都是,16,位的。,48,内存单元的地址和内容,存储单元地址:按照字节编址,49,存储单元的,的内容:,一个存储单元有效的信息。,机器字长是,16,位,,大部分数据以字节为单位表示,,一个字存入存储器占有相继的二个单元:,低位字节存入低地址,高位字节存入高地址,。,字单元的地址采用它的低地址来表示,。,例:字单元,:,(,0004H,),=1234H,字节单元,:,(,0004H,),=34H,同一个地址既可以看作,字节单元地址,,,又可看作,字单元地址,,需要根据使用情况确定。,字单元地址:可以是偶数也可以是奇数,,50,(2),、,CPU,和存储器或,I/O,端口之间传送数据,8086,8086,数据总线是,16,位的。,讨论,CPU,和存储器,或,I/O,端口之间传送数据方式,:,字数据读,/,写操作,字节读,/,写操作,51,字数据读,/,写操作,(a),操作数存放在,偶地址,开始两个存储单元或两个,I/O,端口中,:,即操作数字,的低,8,位,在偶地址单元或 在偶地址端口,;,高,8,位,在奇地址单元或在奇地址端口,。,在一个总线周期内完成,(,通常,4,个时钟周期,),16,位数据传送,,操作数必须存放在偶地址开始两个存储单元或两个,I/O,端口中。,52,对应的,偶地址单元,/,偶地址端口,数据通过数据总线,低,8,位,传输,。,对应的,奇地址单元,/,奇地址端口,数据通过数据总线,高,8,位,传输,。,字数据,读,/,写,偶地址字,操作如下图,:,53,操作数存放在奇地址开始两个存储单元或两个,I/O,端口中,如下图所示:,读,/,写奇地址字,54,在第一个总线周期中,:,对应于奇地址单元或奇地址端口字节(,操作字低,8,位,),通过,数据总线高,8,位进行传输,,而数据总线低,8,位处于空闲状态;,在第二个总线周期中,:,对应于偶地址单元或偶地址端口字节(,操作字高,8,位,),通过,数据总线低,8,位进行传输,,而数据总线高,8,位处于空闲状态,.,由此可见,,操作数存放在奇地址开始两个存储单元,/,两个,I/O,端口中进行,数据传输,,8086,需要二个总线周期。,55,字节读,/,写操作:,对偶地址单元,/,偶地址端口的字节数据进行读,/,写,如下图所示:,在一个总线周期中,只有数据总线的低,8,位传输数据,,高,8,位处于空闲状态。,56,对奇地址单元,/,奇地址端口的字节数据进行读,/,写,如下图所示:,在一个总线周期中,只有数据总线的高,8,位传输数据,,而低,8,位处于空闲状态。,57,8088,8088,数据总线只有,8,位。,讨论,CPU,和存储器,或,I/O,端口 之间传送数据:,每个总线周期只传输,1,个字节,,所以对每个字操作要增加,4,个时钟周期。,(,4,)、存储器特性:,存储器的内容是取之不尽的。,即从某个单元取出其内容后,该单元仍保持原来的内容 不变,可以重复取出;,只有存入信息后,原有的内容自动消失。,58,8086,有,20,条地址总线,直接寻址能力为,2,20,=1M,字节,。,用,16,进制数表示,1M,字节的地址范围应为,00000HFFFFFH,。,(,1,)、,8086,内部,20,位物理地址形成,(,2,)、逻辑地址与物理地址,2,、存储器地址分段:,59,(,1,)、,8088,内部,20,位物理地址形成,存储器地址分段,8088,地址总线是,20,位的,,CPU,中的寄存器是,16,位的,,20,位地址无法用,16,位寄存器表示,必须分段。,程序员在编制程序时把,存储器划分成段,。,段内地址,16,位,每个段的大小最大可达,64KB,;,实际可以根据需要来确定段大小,可以是,1,,,100,,,1000,,,在,64K,范围内的任意字节数。,IBM PC,机对段的起始地址有限制,,即段不能从任意地址开始:,必须从任一小段(,paragraph,),的首地址开始。,60,小段的概念,从,0,地址开始每,16,字节为一小段,,对于,16,位地址总线,段内存储器小段地址如下:,如:,000,0,H,,,0001H,,,0002H,,,,,000EH,,,000FH,一个小段,001,0,H,,,0011H,,,0012H,,,,,001EH,,,001FH,002,0,H,,,0021H,,,0022H,,,,,002EH,,,002FH, ,FFF,0,H, FFF1H, FFF2H, , FFFEH, FFFFH,其中:,第一列就是每个小段的首地址。,61,每个小段首地址特征:,在,16,进制表示的地址中,最低位为,0H,(即,20,位地址的低,4,位为,0000B,)。,在,1M,字节的地址空间,共有,64K,个小段其首地址为:,0000 0H,0001 0H,4123 0H,4124 0H,FFFE 0H,FFFF 0H,62,20,位物理地址形成,物理地址,:,在,1M,字节存储器里,,每个存储单元都有一个唯一的,20,位地址作为该存储单元的物理地址。,CPU,访问存储器时,必须先确定所要访问的存储单元的物理地址才能取出(或存入)该单元中的内容。,20,位物理地址形成:,由,16,位段地址和,16,位偏移地址组成。,段地址,:,只取段起始地址高,16,位值。,偏移地址,:,指在段内某内存单元物理地址相对段起始地址的偏移值。,63,物理地址计算方法:,即把段地址左移,4,位再加上偏移地址值形成物理地址,写成:,物理地址,= 16d,段地址,+,偏移地址。,*,每个存储单元只有唯一的物理地址。,但可由不同的段地址和不同的偏移地址组成。,64,(,3,)、逻辑地址与物理地址,逻辑地址与物理地址概念,逻辑地址与物理地址概念如下页图所示。,逻辑地址:,由段基址和段内偏移地址组成的地址,,段基址和段内偏移地址都是,16,位的无符号二进制数,,在程序设计时使用。,物理地址:,存储器的绝对地址(,20,位的实际地址),,,范围从,00000H,FFFFFH ,是由,CPU,访问存储器时,由地址总线发出的地址。,存储器管理:,将程序中逻辑地址转移为物理地址的机构,。,65,物理地址的形成,.,20000H,25F60H,25F61H,25F62H,25F63H,2000H,段基址,逻,辑,地,址,段内偏移地址,5F62H,逻辑地址与物理地址,66,逻辑地址来源,操作类型,正常使用(隐含)段基址,可替换,段地址,偏移,地址,物理地址计算,取指令,CS,无,IP,(CS),16d+(IP),堆栈操作,SS,无,SP,(SS),16d+(SP),BP,间址,SS,CS,DS,ES,有效地址,EA,(SS),16d+EA,存取变量,DS,CS,ES,SS,有效地址,EA,(DS ),16d+EA,源字符串,DS,CS,ES,SS,SI,(DS),16d+(SI),目标字符串,ES,无,DI,(ES),16d+(DI),67,取指令:,自动选择,代码段寄存器,CS,,,再,加上由,IP,决定的,16,位偏移量,,,计算得到要取的指令,20,位物理地址。,堆栈栈顶操作:,自动选择,堆栈段寄存器,SS,,,再,加上由,SP,决定的,16,位偏移量,,,计算得到,堆栈栈顶,操作需要的,20,位物理地址。,68,涉及到操作数:,自动选择数据段寄存器,DS,或附加段寄存器,ES,,,再加上,16,位偏移量,,计算得到操作数的,20,位物理地址。,其中:,16,位偏移量,:,包含在:指令中的,直接地址,某个,16,位地址,寄存器的值,指令中的,位移量,+16,位地址寄存器中值,等。,16,位偏移量关键取决于指令的寻址方式。,69,段寄存器和其他寄存器组合指向存储单元示意图,归纳段寄存器和其他寄存器组合指向存储单元示意图如下:,70,3,、各段在存储器中分配,各段在存储器中分配分,4,种情况讨论:,(,1,),由操作系统负责分配,一般情况,各段在存储器中的分配是由操作系统负责。,每个段可以独立地占用,64K,存储区,。,(,2,),各段也可以允许重迭,每个段的大小允许根据实际需要分配,不一定要占,64KB,。,每个存储单元的内容不允许发生冲突,(段可重迭,但使用时防止冲突)。,71,(,3,),在程序的首部设定各段寄存器的值,如果程序中的四个段都是,64K,的范围之内,,程序运行时,所需要的信息都在本程序所定义的段区之内,,,程序员只要在程序的,首部设定各段寄存器的值,就可以了。,(,4,),动态地修改段寄存器的内容,如果程序的某一段(如数据段)在程序运行过程中会超过,64K,空间,或者程序中可能,访问除本身四个段以外的其他段区的信息,, 那么在程序中,必须动态地修改段寄存器的内容,。,72,64KB,为一段,代码段范围,:01000H10FFFH,各段允许重迭:,代码段:,01000H1FFFH,数据段:,02000H027FFH,堆栈段:,02800H028FFH,73,注意:,以,8088/8086CPU,的,IBMPC,系统中,存储器首尾地址的用途固定。,00000H003FFH,共,1K,内存单元用于存放中断向量。,FFFF0HFFFFFH,是存储器底部的,16,个单元。,系统加电复位时,会自动转到,FFFF0H,单元执行,,而在,FFFF0H,处存放一条无条件转移指令,转向系统初始化程序。,74,本小节结束,75,
展开阅读全文