32位汇编语言——体系结构.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IA-32 体系结构 宋军 计算机学院信息安全系 songjun@cug.edu.cn 主要内容 IA-32 处理器体系结构 IA-32 CPU的工作模式 IA-32 CPU寄存器组 IA-32 存储器管理 实模式 保护模式 微机系统 硬件、软件 存储器地址 存储器地址是存储单元的编号 每个存储单元存放一个字节量的数据 一个字节B(Byte)包含8个二进制位b(bit) 存储容量指存储器所具有的存储单元个数 基本单位是字节B。 更大的容量单位有 KB(千字节)、MB(兆字节)、GB(千兆字节)TB(兆兆字节) 微处理器(CPU) 微处理器是微机的硬件核心 主要包含指令执行的运算和控制部件,还有多种寄存器 对汇编程序员来说,微处理器抽象为以名称存取的寄存器 课程以Intel 32位微处理器为主体学习32位汇编语言程序设计 Intel微处理器发展 Intel微处理器发展 4位微处理器:4004 8位微处理器:8008/8080/8085 16位微处理器:8086/8088/80186/80286 32位微处理器:IA-32CPU 80386/80486/Pentium, MMX Pentium/P6/Pentium 4 64位微处理器: Xeon /Pentium M /Core Duo IA-32CPU工作模式 实地址模式(Real-address Mode) 实现8086处理器的程序设计环境 所有的Intel处理器都是从实地址模式引导的 保护模式(Protected Mode) 处理器的主要状态 虚拟8086模式 (Virtual-8086 Mode) 系统管理模式(System Management Mode) 电源管理、系统安全等 自定义特定系统启动过程 IA-32 基本执行环境 地址空间 保护模式:4GB内存寻址(0~232-1) 虚拟8086模式:每个程序独立1MB内存 实地址模式:1MB内存 寄存器组 寄存器是CPU内部的高速存储单元 基本寄存器:8个通用寄存器,6个段寄存器,一个标志寄存器(EFLAGS),1个指令指针(EIP) 浮点单元(FPU):8个浮点寄存器 系统寄存器:内存管理、控制、中断、测试 其它寄存器:MMX 常用寄存器组 汇编语言程序员:CPU是可编程的寄存器组 基本寄存器 通用寄存器 4个数据寄存器(EAX、EBX、ECX、EDX) 2个变址寄存器(ESI、EDI) 2个指针寄存器(ESP、EBP) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 6个段寄存器(ES、CS、SS、DS、FS、GS) 通用寄存器 通用寄存器 关系 每一个32位寄存器的低字是相应的16位寄存器,对其中某16位的操作,并不影响另外对应16位的数据; 前4个16位寄存器又分成高8位和低8位两个独立的寄存器,对其中某8位的操作,不影响另外对应8位的数据 用途 可以用来传送和暂存数据,参与算术逻辑运算,保存运算结果 32位和16位的通用寄存器也可以保存存储器地址 每个寄存器又有它们各自的专用目的 数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。 EAX累加器:存放操作数和结果,乘除运算、I/O指令中用于寄存器与外部设备传送信息 EBX基址寄存器:查表和间接寻址时存放基址 ECX计数寄存器:串操作和循环中做计数(隐含) EDX数据寄存器:乘除运算、I/O指令中特指端口地址 变址寄存器 变址寄存器常用于存储器寻址时提供地址 ESI源变址寄存器 EDI目的变址寄存器 变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 串操作类指令中,ESI和EDI具有特定功能,SI和DI分别与DS和ES联用 指针寄存器 指针寄存器用于寻址内存堆栈内的数据 ESP为堆栈指针寄存器,指示栈顶的偏移地址,ESP不能再用于其他目的,具有专用目的 EBP为基址指针寄存器,表示数据在堆栈段中的基地址(栈顶 ) 堆栈段寄存器SS和指针寄存器ESP或EBP共同指示堆栈的存储空间 指令指针EIP 指令指针寄存器EIP,指示代码段中指令的偏移地址 存放下次将要执行的指令在代码段的偏移量 通过CS : EIP寄存器来控制指令序列的执行流程 堆栈(Stack) 堆栈是主存中一个特殊的区域 它采用先进后出FILO(First In Last Out)或后进先出LIFO(Last In First Out)的原则进行存取操作,而不是随机存取操作方式。 堆栈通常由处理器自动维持。在IA-32中,由堆栈段寄存器SS和堆栈指针寄存器ESP共同指示 通用寄存器的特殊用法 某些通用寄存器有些特殊的用法: EAX在乘法和除法指令中校自动使用:通常称之

文档评论(0)

经管专家 + 关注
实名认证
文档贡献者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档