《汇编语言程序设计及上机指导 第2章 寄存器与存储器.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计及上机指导 第2章 寄存器与存储器.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022/12/311重点大学计算机专业系列教材重点大学计算机专业系列教材重点大学计算机专业系列教材重点大学计算机专业系列教材第第2章章 寄存器与存储器寄存器与存储器【本章提要本章提要本章提要本章提要】本章将着重讲解本章将着重讲解本章将着重讲解本章将着重讲解IntelIntelIntelIntel系列系列系列系列CPUCPUCPUCPU内部寄存器的组织结构、内部寄存器的组织结构、内部寄存器的组织结构、内部寄存器的组织结构、命名、功能及其常见的用途,还要介绍存储器的分段管命名、功能及其常见的用途,还要介绍存储器的分段管命名、功能及其常见的用途,还要介绍存储器的分段管命名、功能及其常见的用途,还要
2、介绍存储器的分段管理模式、存储单元地址的表示法以及其物理地址的形成理模式、存储单元地址的表示法以及其物理地址的形成理模式、存储单元地址的表示法以及其物理地址的形成理模式、存储单元地址的表示法以及其物理地址的形成方式。方式。方式。方式。【学习目标学习目标学习目标学习目标】熟练掌握熟练掌握熟练掌握熟练掌握CPUCPUCPUCPU内部寄存器的组织结构内部寄存器的组织结构内部寄存器的组织结构内部寄存器的组织结构 熟练掌握标志寄存器各定义位的功能熟练掌握标志寄存器各定义位的功能熟练掌握标志寄存器各定义位的功能熟练掌握标志寄存器各定义位的功能 掌握存储器的分段管理方案掌握存储器的分段管理方案掌握存储器的分
3、段管理方案掌握存储器的分段管理方案汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回22.1 寄存器组织寄存器组织oo寄存器是寄存器是寄存器是寄存器是CPUCPU内部重要的数据存储资源,是汇编程序员能直接使用的内部重要的数据存储资源,是汇编程序员能直接使用的内部重要的数据存储资源,是汇编程序员能直接使用的内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。硬件资源之一。硬件资源之一。硬件资源之一。ooIntelIntel系列微处理器从早期的系列微处理器从早期的系列微处理器从早期的系列微处理器从早期的1616位位位位80868086开始,到开始,到开始,到开始,到P
4、entiumPentium系列,以系列,以系列,以系列,以至于现在的至于现在的至于现在的至于现在的CORECORE(酷睿)系列,虽然(酷睿)系列,虽然(酷睿)系列,虽然(酷睿)系列,虽然CPUCPU内部结构和功能变化很大,内部结构和功能变化很大,内部结构和功能变化很大,内部结构和功能变化很大,但其寄存器的组织情况却是有规律的。但其寄存器的组织情况却是有规律的。但其寄存器的组织情况却是有规律的。但其寄存器的组织情况却是有规律的。寄存器类型寄存器类型IA-32IA-32寄存器寄存器IA-32EIA-32E寄存器寄存器字节寄存器(8位)AH,BH,CH,DH,AL,BL,CL,DLAL,BL,CL,
5、DL,DIL,SIL,BPL,SPL,R8L-R15L字寄存器(16位)AX,BX,CX,DX,DI,SI,BP,SPAX,BX,CX,DX,DI,SI,BP,SP,R8W-R15W双字寄存器(32位)EAX,EBX,ECX,EDX,EDI,ESI,EBP,ESPEAX,EBX,ECX,EDX,EDI,ESI,EBP,ESP,R8D-R15D四字寄存器(64位)无RAX,RBX,RCX,RDX,RDI,RSI,RBP,RSP,R8-R152022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回32022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指
6、指导导第第2章章返回返回42.1.2 标志寄存器标志寄存器ooIntelIntel的的的的1616位位位位CPUCPU中设置了中设置了中设置了中设置了1616位的标志寄存器位的标志寄存器位的标志寄存器位的标志寄存器FLAGSFLAGS,其中定义,其中定义,其中定义,其中定义了了了了9 9个标志位,主要用来反映个标志位,主要用来反映个标志位,主要用来反映个标志位,主要用来反映CPUCPU的状态和运算结果的特征。的状态和运算结果的特征。的状态和运算结果的特征。的状态和运算结果的特征。oo后来在后来在后来在后来在3232位和位和位和位和6464位环境下,位环境下,位环境下,位环境下,FLAGSFLA
7、GS又分别被扩展到了又分别被扩展到了又分别被扩展到了又分别被扩展到了3232位和位和位和位和6464位(即位(即位(即位(即EFLAGSEFLAGS和和和和RFLAGSRFLAGS),同时又增加一些新的标志位定义。),同时又增加一些新的标志位定义。),同时又增加一些新的标志位定义。),同时又增加一些新的标志位定义。1514131211109876543210OFDFIFTFSFZFAFPFCF图2.2 FLAGS定义示意图2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回51 1、进位标志、进位标志、进位标志、进位标志CF(CarryCF(Carry F
8、lag)Flag)如果运算结果的最高位产生了一个进位或借位,其值为如果运算结果的最高位产生了一个进位或借位,其值为如果运算结果的最高位产生了一个进位或借位,其值为如果运算结果的最高位产生了一个进位或借位,其值为1 1,否则其值为,否则其值为,否则其值为,否则其值为0 0。2 2、奇偶标志、奇偶标志、奇偶标志、奇偶标志PF(ParityPF(Parity Flag)Flag)运算结果中最低运算结果中最低运算结果中最低运算结果中最低8 8位中位中位中位中“1”1”的个数为偶数,则的个数为偶数,则的个数为偶数,则的个数为偶数,则PFPF的值为的值为的值为的值为1 1,否则其值为,否则其值为,否则其值
9、为,否则其值为0 0。3 3、辅助进位标志、辅助进位标志、辅助进位标志、辅助进位标志AF(AuxiliaryAF(Auxiliary Carry Flag)Carry Flag)在字操作时,发生低字节向高字节进位或借位,或者在字节操作时,发生低在字操作时,发生低字节向高字节进位或借位,或者在字节操作时,发生低在字操作时,发生低字节向高字节进位或借位,或者在字节操作时,发生低在字操作时,发生低字节向高字节进位或借位,或者在字节操作时,发生低4 4位向高位向高位向高位向高4 4位进位或借位,则位进位或借位,则位进位或借位,则位进位或借位,则AFAF的值被置为的值被置为的值被置为的值被置为1 1,否
10、则其值为,否则其值为,否则其值为,否则其值为0 0。4 4、零标志、零标志、零标志、零标志ZF(ZeroZF(Zero Flag)Flag)如果运算结果为如果运算结果为如果运算结果为如果运算结果为0 0,则其值为,则其值为,则其值为,则其值为1 1,否则其值为,否则其值为,否则其值为,否则其值为0 0。5 5、符号标志、符号标志、符号标志、符号标志SF(SignSF(Sign Flag)Flag)符号标志符号标志符号标志符号标志SFSF用来反映运算结果的符号位,它与运算结果的最高位相同。用来反映运算结果的符号位,它与运算结果的最高位相同。用来反映运算结果的符号位,它与运算结果的最高位相同。用来
11、反映运算结果的符号位,它与运算结果的最高位相同。6 6、溢出标志、溢出标志、溢出标志、溢出标志OF(OverflowOF(Overflow Flag)Flag)如果运算结果超过当前运算位数所能表示的范围,则称为溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OFOF的值被的值被的值被的值被置为置为置为置为1 1,否则,否则,否则,否则,OFOF的值被清为的值被清为的值被清为的值被清为0 0。1514131211109876543210OFDFIFTFSFZFAFPFCF
12、图2.2 FLAGS定义示意图2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回67 7、追踪标志、追踪标志、追踪标志、追踪标志TF(TrapTF(Trap Flag)Flag)当追踪标志当追踪标志当追踪标志当追踪标志TFTF被置为被置为被置为被置为1 1时,时,时,时,CPUCPU进入单步执行方式,即每执行一条指令,进入单步执行方式,即每执行一条指令,进入单步执行方式,即每执行一条指令,进入单步执行方式,即每执行一条指令,产生一个单步中断请求。产生一个单步中断请求。产生一个单步中断请求。产生一个单步中断请求。8 8、中断允许标志、中断允许标志、中断允许
13、标志、中断允许标志IF(InterruptIF(Interrupt-enable Flag)-enable Flag)中断允许标志中断允许标志中断允许标志中断允许标志IFIF是用来决定是用来决定是用来决定是用来决定CPUCPU是否响应是否响应是否响应是否响应CPUCPU外部的可屏蔽中断发出的中外部的可屏蔽中断发出的中外部的可屏蔽中断发出的中外部的可屏蔽中断发出的中断请求。断请求。断请求。断请求。(1)(1)当当当当IF=1IF=1时,时,时,时,CPUCPU可以响应可以响应可以响应可以响应CPUCPU外部的可屏蔽中断发出的中断请求;外部的可屏蔽中断发出的中断请求;外部的可屏蔽中断发出的中断请求
14、;外部的可屏蔽中断发出的中断请求;(2)(2)当当当当IF=0IF=0时,时,时,时,CPUCPU不响应不响应不响应不响应CPUCPU外部的可屏蔽中断发出的中断请求。外部的可屏蔽中断发出的中断请求。外部的可屏蔽中断发出的中断请求。外部的可屏蔽中断发出的中断请求。9 9、方向标志、方向标志、方向标志、方向标志DF(DirectionDF(Direction Flag)Flag)方向标志方向标志方向标志方向标志DFDF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。用来决定在串操作指令执行时有关指针寄存器发生调整的方向。用来决定在串操作指令执行时有关指针寄存器发生调整的方向。用来决定在串操
15、作指令执行时有关指针寄存器发生调整的方向。1514131211109876543210OFDFIFTFSFZFAFPFCF图2.2 FLAGS定义示意图2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回72.2 存储器的管理模式存储器的管理模式ooIntelIntel的的的的80X8680X86系列系列系列系列CPUCPU基本上采用内存分段的管理模式。基本上采用内存分段的管理模式。基本上采用内存分段的管理模式。基本上采用内存分段的管理模式。它把内存和程序分成若干个段,每个段的起点用一个段寄存器它把内存和程序分成若干个段,每个段的起点用一个段寄存器它把内存
16、和程序分成若干个段,每个段的起点用一个段寄存器它把内存和程序分成若干个段,每个段的起点用一个段寄存器来保存。来保存。来保存。来保存。2.2.1 实地址方式内存管理实地址方式内存管理oo目前的目前的目前的目前的IntelIntel系列系列系列系列CPUCPU都能工作在实地址方式或保护地址方式都能工作在实地址方式或保护地址方式都能工作在实地址方式或保护地址方式都能工作在实地址方式或保护地址方式下。实地址方式下只能访问下。实地址方式下只能访问下。实地址方式下只能访问下。实地址方式下只能访问1MB1MB的内存空间,只能的内存空间,只能的内存空间,只能的内存空间,只能单任务单任务单任务单任务运运运运行,
17、行,行,行,80868086只有这一种工作方式,只有这一种工作方式,只有这一种工作方式,只有这一种工作方式,8028680286以后的系列以后的系列以后的系列以后的系列CPUCPU的的的的可以运行在保护地址方式。可以运行在保护地址方式。可以运行在保护地址方式。可以运行在保护地址方式。oo如果工作在实地址模式,则任何高档处理器只相当于快速的如果工作在实地址模式,则任何高档处理器只相当于快速的如果工作在实地址模式,则任何高档处理器只相当于快速的如果工作在实地址模式,则任何高档处理器只相当于快速的80868086,因此寻址方法与,因此寻址方法与,因此寻址方法与,因此寻址方法与80868086一样,在
18、这种方式下处理器没一样,在这种方式下处理器没一样,在这种方式下处理器没一样,在这种方式下处理器没有充分发挥处理器的性能。有充分发挥处理器的性能。有充分发挥处理器的性能。有充分发挥处理器的性能。只有在保护方式下,处理器才真正只有在保护方式下,处理器才真正只有在保护方式下,处理器才真正只有在保护方式下,处理器才真正发挥应有的作用发挥应有的作用发挥应有的作用发挥应有的作用。2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回81 1段地址与偏移地址段地址与偏移地址段地址与偏移地址段地址与偏移地址oo在实地址方式下,段地址定义了段起始地址的高在实地址方式下,段地址
19、定义了段起始地址的高在实地址方式下,段地址定义了段起始地址的高在实地址方式下,段地址定义了段起始地址的高1616位,并存放在段寄存器中。位,并存放在段寄存器中。位,并存放在段寄存器中。位,并存放在段寄存器中。逻辑段的起始地址(通常简称为:段地址)必须是逻辑段的起始地址(通常简称为:段地址)必须是逻辑段的起始地址(通常简称为:段地址)必须是逻辑段的起始地址(通常简称为:段地址)必须是1616的倍数,即最低的倍数,即最低的倍数,即最低的倍数,即最低4 4位二进位二进位二进位二进制必须全为制必须全为制必须全为制必须全为0 0。1M1M内存最多可分成内存最多可分成内存最多可分成内存最多可分成64K64
20、K个段,即个段,即个段,即个段,即6553665536个段个段个段个段(段之间相互重段之间相互重段之间相互重段之间相互重叠叠叠叠),至少可分成,至少可分成,至少可分成,至少可分成1616个相互不重叠的段。个相互不重叠的段。个相互不重叠的段。个相互不重叠的段。oo偏移地址描述目的地址在该段中的相对位置,即离段基址的偏移量,它指示在偏移地址描述目的地址在该段中的相对位置,即离段基址的偏移量,它指示在偏移地址描述目的地址在该段中的相对位置,即离段基址的偏移量,它指示在偏移地址描述目的地址在该段中的相对位置,即离段基址的偏移量,它指示在64KB64KB段内任何一个单元。偏移地址保存在段内任何一个单元。
21、偏移地址保存在段内任何一个单元。偏移地址保存在段内任何一个单元。偏移地址保存在1616位寄存器中,因此段的大小最大位寄存器中,因此段的大小最大位寄存器中,因此段的大小最大位寄存器中,因此段的大小最大为为为为64KB64KB。2.2.默认段地址与偏移地址寄存器默认段地址与偏移地址寄存器默认段地址与偏移地址寄存器默认段地址与偏移地址寄存器访问访问存存储储器器类类型型默默认认段地址寄存器段地址寄存器可指定段地址寄存器可指定段地址寄存器段内偏移地址来源段内偏移地址来源取指令取指令CS无无IP堆堆栈栈操作操作SS无无SP字符串操作源地址字符串操作源地址DSCS,SS,ESSI字符串操作目的地址字符串操作
22、目的地址ES无无DIBP用作基址寄存器用作基址寄存器时时SSCS,DS,ES据据寻寻址方式得偏移地址址方式得偏移地址一般数据存取一般数据存取DSCS,ES,SS据据寻寻址方式得偏移地址址方式得偏移地址2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回93.逻辑地址与物理地址逻辑地址与物理地址oo逻辑地址逻辑地址逻辑地址逻辑地址是段地址与偏移地址的合称,用是段地址与偏移地址的合称,用是段地址与偏移地址的合称,用是段地址与偏移地址的合称,用“段地址:偏移地址段地址:偏移地址段地址:偏移地址段地址:偏移地址”表示,表示,表示,表示,如如如如1234H1234H
23、:1200H1200H表示段地址为表示段地址为表示段地址为表示段地址为1234H1234H,段内偏移地址为,段内偏移地址为,段内偏移地址为,段内偏移地址为1200H1200H。oo物理地址物理地址物理地址物理地址是存储器的实际地址,在实地址方式下物理地址通过段地址乘以是存储器的实际地址,在实地址方式下物理地址通过段地址乘以是存储器的实际地址,在实地址方式下物理地址通过段地址乘以是存储器的实际地址,在实地址方式下物理地址通过段地址乘以1616加加加加上偏移地址得到。而上偏移地址得到。而上偏移地址得到。而上偏移地址得到。而1616位的段地址乘以位的段地址乘以位的段地址乘以位的段地址乘以1616等同
24、于左移等同于左移等同于左移等同于左移4 4位二进制位,这样变成位二进制位,这样变成位二进制位,这样变成位二进制位,这样变成2020位的段基地址,最后段基地址加上段内偏移地址就是物理地址。位的段基地址,最后段基地址加上段内偏移地址就是物理地址。位的段基地址,最后段基地址加上段内偏移地址就是物理地址。位的段基地址,最后段基地址加上段内偏移地址就是物理地址。【例例例例2.12.1】有一逻辑地址为有一逻辑地址为有一逻辑地址为有一逻辑地址为1200H:0340H1200H:0340H,求物理地址。,求物理地址。,求物理地址。,求物理地址。解:由逻辑地址知段地址解:由逻辑地址知段地址解:由逻辑地址知段地址
25、解:由逻辑地址知段地址=1200H=1200H,偏移地址,偏移地址,偏移地址,偏移地址=0340H=0340H,因此物理地址,因此物理地址,因此物理地址,因此物理地址=12000H+0340H=12340H=12000H+0340H=12340H。【例例例例2.22.2】已经已经已经已经DS=1000HDS=1000H,CS=2200HCS=2200H,指令,指令,指令,指令MOV 2000H,AXMOV 2000H,AX在代码段在代码段在代码段在代码段中的偏移量是中的偏移量是中的偏移量是中的偏移量是IP=0150HIP=0150H,求(,求(,求(,求(1 1)该指令所在的物理地址。()该指
26、令所在的物理地址。()该指令所在的物理地址。()该指令所在的物理地址。(2 2)目的操作)目的操作)目的操作)目的操作数对应的物理地址数对应的物理地址数对应的物理地址数对应的物理地址。解:(解:(解:(解:(1 1)指令对应的物理地址)指令对应的物理地址)指令对应的物理地址)指令对应的物理地址=CS*16+IP=22000H+0150H=22150H=CS*16+IP=22000H+0150H=22150H。(2 2)该指令指示的目的操作数对应段地址默认存在)该指令指示的目的操作数对应段地址默认存在)该指令指示的目的操作数对应段地址默认存在)该指令指示的目的操作数对应段地址默认存在DSDS中,
27、偏移地址已由指令中,偏移地址已由指令中,偏移地址已由指令中,偏移地址已由指令给出给出给出给出2000H2000H,因此该指令指示的目的操作数所在物理地址,因此该指令指示的目的操作数所在物理地址,因此该指令指示的目的操作数所在物理地址,因此该指令指示的目的操作数所在物理地址=DS*16+2000H=DS*16+2000H=10000H+2000H=12000H=10000H+2000H=12000H。2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回104.存储单元的内容存储单元的内容oo存储单元是按照地址进行访问的,相邻两个单元的地址存储单元是按照地址进
28、行访问的,相邻两个单元的地址存储单元是按照地址进行访问的,相邻两个单元的地址存储单元是按照地址进行访问的,相邻两个单元的地址编号是连续的,一般以无符号数表示,编号是连续的,一般以无符号数表示,编号是连续的,一般以无符号数表示,编号是连续的,一般以无符号数表示,IntelIntel系列系列系列系列CPUCPU都以字节为单位分配地址编号的。都以字节为单位分配地址编号的。都以字节为单位分配地址编号的。都以字节为单位分配地址编号的。1 1)一个字节一个字节一个字节一个字节的内容占用一个存储单元并分配一个地址的内容占用一个存储单元并分配一个地址的内容占用一个存储单元并分配一个地址的内容占用一个存储单元并
29、分配一个地址 编号;编号;编号;编号;2 2)一个字一个字一个字一个字的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继1 1个个个个 单元的内容拼接而成;单元的内容拼接而成;单元的内容拼接而成;单元的内容拼接而成;3 3)一个一个一个一个3232位位位位的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继 3 3个单元的内容拼接而成;个单元的内容拼接而成;个单元的内容拼接而成;个单元的内容拼接而成;4 4)一
30、个一个一个一个6464位位位位的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继的内容是该字地址所指向的单元及其后继 7 7个单元的内容拼接而成。个单元的内容拼接而成。个单元的内容拼接而成。个单元的内容拼接而成。oo在拼接多个内存单元时,按在拼接多个内存单元时,按在拼接多个内存单元时,按在拼接多个内存单元时,按“高对高低对低高对高低对低高对高低对低高对高低对低”的原则来的原则来的原则来的原则来处理,即:高存储单元(地址大的存储单元)的值是高处理,即:高存储单元(地址大的存储单元)的值是高处理,即:高存储单元(地址大的存储单元)的值是高处理,即:高存储单元(地址大的存储单元)的值是高数据位,低存储单元(地址小的存储单元)的值是低数数据位,低存储单元(地址小的存储单元)的值是低数数据位,低存储单元(地址小的存储单元)的值是低数数据位,低存储单元(地址小的存储单元)的值是低数据位。据位。据位。据位。内容内容地址地址12H1000H34H1001H56H1002H78H1003H11H1004H22H1005H33H1006H44H1007H2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第2章章返回返回112.2.2 保护方式内存管理模式保护方式内存管理模式略略2022/12/31