- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 微处理器及其体系结构 罗文坚中国科大 计算机学院/~wjluo/mcps//~wjluo/mcps/ 微处理器的内部体系结构实模式存储器寻址保护模式存储器寻址简介平展模式内存内存分页本章内容程序设计模型程序可见的寄存器:程序设计期间必须使用的。程序设计模型程序不可见的寄存器:在应用程序设计期间不能直接寻址,但系统程序设计期间可能间接使用到。只有80286及更高档的微处理器才包含程序不可见寄存器,用于控制和操作保护模式存储系统和其他特征。程序设计模型8086~Core2包括64位扩展8位寄存器16位寄存器32位寄存器64位寄存器多功能寄存器又称为通用寄存器专用寄存器程序设计模型8086,8088和80286包含16位内部结构。80386~Core2包括全部的32位内部结构。Pentium 4和Core2在使用64位模式操作时,也包括64位寄存器。程序设计模型8位寄存器AH,AL,BH,BL,CH,CL,DH,DL例如,ADD AL, AH16位寄存器AX,BX,CX,DX,BP,SI,DI,SPIP,FLAGSACS,DS,ES,SS,FS,GS注意1:AX,BX,CX,DX个包含2个8位寄存器。注意2:FS和GS值用于80386以上微处理器。例如,ADD DX,CX程序设计模型32位寄存器EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESPEIP,EFLAGS只用于80386以上微处理器。例如,ADD ECX,EBX64位寄存器RAX,RBX,RCX,RDX,SRI,RDI,RBP,RSPRIP,RFLAGSR8,R9,R10,R11,R12,R13,R14,R15例如,ADD RCX, RBX64位模式下的程序设计模型64位模式下,需注意:64位寄存器R8~R15是可以按照字节、字、双字或者四字的方式寻址的。8位部分是最低8位。不支持把其中的第8~15位作为1字节来直接寻址。寄存器大小控制字访问位数示例8位B7~0MOV R9B, R10B16位W15~0MOV R10W, AX32位D31~0MOV R14D, R15D64位——63~0MOV R13, R1264位模式下的程序设计模型高字节寄存器(AH、BH、CH、DH)不能与由R8~R15所表示的字节在同一指令中寻址。64位模式下,SI、DI、BP、SP低8位可寻址,为SIL、DIL、BPL、SPL。多功能寄存器RAX(累加器,Accumulator)RAX,EAX,AX,AH,AL在乘法、除法及一些调整指令中有专门用途。在386以上微处理器中,EAX及RAX可用于保存访问存储单元时的偏移地址。RBX(基址,Base)RBX,EBX,BX,BH,BL可用于保存访问存储单元时的偏移地址。多功能寄存器RCX(计数,Counter)RCX,ECX,CX,CH,CL可保存许多指令的计数值,如移位指令、循环指令、串指令等。在386以上微处理器中,ECX及RCX可用于保存访问存储单元时的偏移地址。RDX(数据,DATA)RDX,EDX,DX,DH,DL可用于保存乘法形成的部分结果,或除法指令的部分被除数。在386以上微处理器中,EDX及RDX可用于保存访问存储单元时的偏移地址。多功能寄存器RBP(基指针, Base Pointer)RBP,EBP,BP可用于保存访问存储单元时的偏移地址。RDI(Destination Index)RDI,EDI,DI可用于保存访问存储单元时的偏移地址。常用于寻址串指令的目的操作数。RSI(Source Index)RSI,ESI,SI可用于保存访问存储单元时的偏移地址。常用于寻址串指令的源操作数。多功能寄存器R8~R15只存在于Pentium 4和Core 2中64位扩展允许的情况下。这些寄存器中的数据是用于通用目的的。可以按照64、32、16、8位大小寻址。8位部分是寄存器最右边的8位。第8位~第15位不能按照一个字节直接寻址。专用寄存器专用寄存器包括:RIP(指令指针)RSP(堆栈指针)很多参考书把RSP作为一个通用寄存器RFLAGS(标志寄存器)CS,DS,ES,SS,FS,GS(段寄存器)RIP(指令指针)RIP:在64位模式中,包括40位地址,指向要执行的下一条指令的偏移值,该偏移值相对于指令所在代码段的基地址(段基址)EIP:32位指令指针,用于32位微处理器中。IP:在8086和80286中,指令指针为16位寄存器。程序员不能对RIP/EIP/IP进行直接存取操作。程序中的转移指令、返回指令以及中断处理能对RIP/EIP /IP进行操作。RSP(堆栈指针)RSPRSP,ESP,SP用于寻址一个称为堆栈的存储区。RFLAGS(标志寄存器)RFLAGS:用于指示微处理器的状态并控制它的操作。FLAGS:8086~802
文档评论(0)