2寄存器结构存储器管理00154课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《2寄存器结构存储器管理00154课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 寄存器 结构 存储器 管理 00154 课件
- 资源描述:
-
1、 基本结构寄存器基本结构寄存器通用数据寄存器通用数据寄存器SIESIESI、SI:数据段源变址指针寄存器数据段源变址指针寄存器BPEBPEBP、BP:堆栈段基址指针寄存器堆栈段基址指针寄存器SPESPESP、SP:堆栈段栈顶指针寄存器堆栈段栈顶指针寄存器DHDLDXEDXEDX、DX、DH、DL:间接间接I/O操作;双操作;双字乘字乘/除除CXCHCLECXECX、CX、CH、CL:循环计数;重复串循环计数;重复串操作;可变移位、循环移位操作。操作;可变移位、循环移位操作。EBX、BX、BH、BL:查表转换;基地址。查表转换;基地址。BXBHBLEBXEAX、AX、AH、AL:加减;加减;BC
2、D、ASCII调整;字节到字,字到双字转换;乘调整;字节到字,字到双字转换;乘/除,串除,串操作,操作,I/O操作等。操作等。AXAHALEAXEDI、DI:数据段目的变址指针寄存器数据段目的变址指针寄存器DIEDI1. 8086/8088CPU的功能结构的功能结构8086的寄存器结构的寄存器结构OFOF DFDF IFIF TFTF SFSF ZFZFAFAFPFPFCFCF0 015152 24 45 56 67 78 89 91010AHAHALALBHBHBLBLCHCHCLCLDHDHDLDLSPSPBPBPSISIDIDIIPIPPSWPSWCSCSDSDSSSSSESESAXAX
3、BXBXCXCXDXDX累加器累加器基址基址计数计数数据数据数据寄存器数据寄存器0 015150 07 78 815150 015150 01515附加数据段附加数据段堆栈段堆栈段数据段数据段代码段代码段段寄存器段寄存器指令指针指令指针状态标志状态标志控制寄存器控制寄存器堆栈指针堆栈指针基址指针基址指针 源变址源变址目的变址目的变址指针寄存器指针寄存器变址寄存器变址寄存器通通用用寄寄存存器器1、通用寄存器、通用寄存器通用寄存器包括:通用寄存器包括: 数据寄存器、地址指针寄存器、变址寄存器数据寄存器、地址指针寄存器、变址寄存器。 数据寄存器包括数据寄存器包括: AX 、BX 、CX 、DX 。
4、地址指针寄存器包括地址指针寄存器包括: SP 、 BP 。 变址寄存器包括变址寄存器包括: SI 、 DI 。2、段寄存器、段寄存器 段寄存器包括段寄存器包括: CS 、 SS 、 DS 、 ES 。3、控制寄存器、控制寄存器 控制寄存器包括:控制寄存器包括:IP 、PSW。1、通用寄存器、通用寄存器(1)数据寄存器)数据寄存器AX、BX、CX、DX 作为通用寄存器。作为通用寄存器。 用来暂存计算过程中所用到的操作数,结果或其它信用来暂存计算过程中所用到的操作数,结果或其它信息。息。 访问形式访问形式:可以用可以用16位的访问位的访问; 或者可以用字节(或者可以用字节(8位)位)形式访问形式访
5、问,它们的它们的高高8位记作位记作 : AH 、 BH 、 CH 、 DH 。它们的它们的低低8位记作位记作 : AL 、BL 、CL 、DL 。AX(Accumulator)作为作为累加器累加器。 它是算术运算的主要寄存器,它是算术运算的主要寄存器,所有所有I/O指令都使用这一寄存器与外部设备交换数据。指令都使用这一寄存器与外部设备交换数据。例:例: IN AL , 20HOUT 30H , AXBXBase用作用作基址寄存器基址寄存器使用。使用。 在计算内存储器地址时,经常用来存放基址。在计算内存储器地址时,经常用来存放基址。例:例:MOV AX, BX+03HCXCount可以可以作计数
6、寄存器作计数寄存器使用。使用。 在循环在循环LOOP指令和串处理指令中用作隐含计数器。指令和串处理指令中用作隐含计数器。例:例:MOV CX , 200HAGAIN:LOOP AGAIN ;(CX)-1(CX),结果结果 0转转AGAINDXData可以可以作为数据寄存器使用。作为数据寄存器使用。一般在双字长乘除法运算时,一般在双字长乘除法运算时, 把把DX和和AX组合在一起存放一个双字长组合在一起存放一个双字长(32位位)数,数,DX用来存放高用来存放高16位位; 对某些对某些I/O操作操作DX可用来存放可用来存放I/O的端口地址(口地址的端口地址(口地址 256)。)。例:例:MUL BX
7、 ; (AX) (BX)(DX)(AX)例例:IN AL , DX(2)地址指针与变址寄存器)地址指针与变址寄存器: 段起始地址段起始地址 SP、BP、SI、DI 四个四个16位寄存器。位寄存器。以字为单位在运算过程中存放操作数,以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。经常用以在段内寻址时提供偏移地址。 段内偏移地址段内偏移地址段地址段地址 :只取段起始地址高只取段起始地址高16位值。位值。偏移地址偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。指在段内某内存单元物理地址相对段起始地址的偏移值。 高高16位值位值 0000B地址指针寄存器地址指针寄存器(
8、SP 、 BP ) SP(stack pointer)堆栈指针寄存器堆栈指针寄存器 用来指示栈顶的偏移地址用来指示栈顶的偏移地址, 必须与必须与SS段寄存器联合使用确定实际地址。段寄存器联合使用确定实际地址。 堆栈和指针如下页图所示。堆栈和指针如下页图所示。 BP(base pointer)基址指针寄存器基址指针寄存器 可以与可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。寄存器联合使用来确定堆栈段中某一存储器单元地址。 变址寄存器变址寄存器(SI 、 DI)SISource Index Register 源变址寄存器。源变址寄存器。DIDestination Index 目的变址寄
9、存器目的变址寄存器。使用场合:常用于变址寻址。使用场合:常用于变址寻址。 一般与一般与DS联用,用来确定数据段中某一存储单元的地址,联用,用来确定数据段中某一存储单元的地址, SI , DI具有自动增量和自动减量功能具有自动增量和自动减量功能.例:例:MOV AX, SI在串处理指令中,在串处理指令中,SI、DI作为隐含的源变址和目的变址寄作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。存器分别达到在数据段和附加段中寻址的目的。 执行示意图如右图。执行示意图如右图。例:例:MOV SI , 2000HMOV DI , 3000HMOV CX, 100HCLD.MOVSB
10、.3000H:2000H3000H:2000H3000H:2100H3000H:2100H5000H:3000H5000H:3000H5000H:3100H5000H:3100HDS:2000HDS:20FFHDS:2000HDS:20FFHES:3000HES:30FFHES:3000HES:30FFH(DS)(DS)(SI)(SI)(ES)(ES)(DI)(DI)存储器存储器 串处理指令执行示意图串处理指令执行示意图2、段寄存器、段寄存器段寄存器段寄存器: 4个个16位段寄存器位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。用来识别当前可寻址的四个段,不可互换
11、的使用。CSCode Segment Register 代码段寄存器代码段寄存器 用来识别当前代码段(程序一般放在代码段)。用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器数据段寄存器 用来识别当前数据段寄存器。用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器,堆栈段寄存器, 用来识别当前堆栈段。用来识别当前堆栈段。ESExtra Segment Register附加段寄存器附加段寄存器, 用来识别当前附加段。用来识别当前附加段。3、控制寄存器、控制寄存器控制寄存器控制寄存器:IP 、 PSWIPInst
12、ruction Pointer指令指针寄存器指令指针寄存器 用来存储代码段中的偏移地址用来存储代码段中的偏移地址; 程序运行过程中程序运行过程中IP始终指向下一次要取出的指令偏始终指向下一次要取出的指令偏移地址。移地址。IP要与要与CS寄存器相配合才能形成真正的物理地址。寄存器相配合才能形成真正的物理地址。FLAGS程序状态字寄存器,程序状态字寄存器, 16位寄存器。位寄存器。 由条件码标志由条件码标志FLAG、控制标志构成。控制标志构成。只用了其中只用了其中9位位, 6位位条件标志条件标志, 3位位控制标志。控制标志。标志寄存器标志寄存器-分类分类状态标志状态标志用来记录程序运行结果的状态用
13、来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AF控制标志控制标志可由程序根据需要用指令设置,可由程序根据需要用指令设置,用于控制处理器执行指令的方式用于控制处理器执行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0进位标志进位标志CF(Carry Flag)当运算结果的最高有效位有进位(加法)或借当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置位(减法)时,进位标志置1,即,即CF1; 否则否则CF03AH + 7CHB6H,没有进位:,没有进位
14、:CF = 0AAH + 7CH(1)26H,有进位:,有进位:CF = 1零标志零标志ZF(Zero Flag)若运算结果为若运算结果为0,则,则ZF1;否则否则ZF03AH7CHB6H,结果不是零:,结果不是零:ZF084H7CH(1)00H,结果是零:,结果是零:ZF1 注意:注意:ZF为为1表示的结果是表示的结果是0符号标志符号标志SF(Sign Flag)运算结果最高位为运算结果最高位为1,则,则SF1; 否则否则SF03AH7CHB6H,最高位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符号数据用最高有效位表示数据的符号有符号数据用最高有效位表示
15、数据的符号所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态奇偶标志奇偶标志PF(Parity Flag)当运算结果最低字节中当运算结果最低字节中“1”的个数为的个数为零或偶数时,零或偶数时,PF1;否则;否则PF03AH7CHB6H10110110B结果中有结果中有5个个“1”,是奇数:是奇数:PF0 PF标志仅反映最低标志仅反映最低8位中位中“1”的个数是的个数是偶或奇,即使是进行偶或奇,即使是进行16位字操作位字操作溢出标志溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF1; 否则否则 OF03AH + 7CHB6H,产
16、生溢出:,产生溢出:OF1AAH + 7CH(1)26H,没有溢出:,没有溢出:OF0什么是溢出什么是溢出处理器内部以补码表示有符号数处理器内部以补码表示有符号数8位表达的整数范围是:位表达的整数范围是:127 12816位表达的范围是:位表达的范围是:32767 32768如果运算结果超出这个范围,就产生了溢出如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确有溢出,说明有符号数的运算结果不正确3AH7CHB6H,就是,就是58124182,已经超出已经超出128127范围,产生溢出,故范围,产生溢出,故OF1;补码;补码B6H表达真值是表达真值是74,显然运算结果也
17、不正确,显然运算结果也不正确 B6H10110110B,最高位为,最高位为1,作为有符号数是负数作为有符号数是负数 对对B6H求反加求反加1等于:等于:01001001B101001010B4AH74 所以,所以,B6H表达有符号数的真值为表达有符号数的真值为74溢出和进位的区别溢出和进位的区别溢出标志溢出标志OF和进位标志和进位标志CF是两个意义不是两个意义不同的标志同的标志进位标志表示无符号数运算结果是否超出进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确范围,运算结果仍然正确溢出标志表示有符号数运算结果是否超出溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确范围,运
展开阅读全文