




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_01_课程介绍与 IA-32处理器结构大连理工大学软件学院 _朱明2009年 5月 31日 _ V1.1课程说明 课程时间: 20082009学年度第三学期 课程学时: 24学时课程 课程对象: 2007级软 件和网络专 业本科生 参 考书籍: Assembly Language for Intel-Based Computers, 5th edition Intel汇编语言程序设计(第五版) 课程环境 : MASM系统环境 参考 汇编语言课程系统环境设置说明 课程资料: 2汇编语言程序设计 - 朱明MASM系统环境 汇编语言课程系统环境设置说明 打开现有工程 语法高亮 汇编工程属性 观察与调试 16位程序设置 建立新工程 32位程序的一般调试方法 C/C+程序汇编输出 irvine函数库汇编语言程序设计 - 朱明 3MASM系统环境 IA32系统环境要求 Intel Architecture-32,及其兼容的处理器 Intel 386、 Intel 486、 Intel Pentium、 Intel Core AMD公司生产的 IA-32兼容处理 器: Athlon MASM系统环境要求 Windows操作系统 Windows XP, Windows Vista, Windows 7 Microsoft Visual Studio 2008 Visual C+ 2008 修订过的参考书籍示例文件 解压所至 C:irvine文件夹 下4汇编语言程序设计 - 朱明学到什么 体系结构,数据和布尔逻辑(基础知识,半复习) IA-32处理器的内存管理方式(基础知识,半复习) IA-32处理器的实模式、保护模式和虚拟模式 高级语言到汇编语言和机器语言的编译过程 IA-32汇编语言指令与应用程序设计 IA-32汇编语言的基本指令和高级过程 汇编语言代码与 C+程序之间的接口 汇编语言与操作系统交互的程序设计 汇编语言的硬件直接程序设计汇编语言程序设计 - 朱明 5关于汇编 汇编语言与机器语言是一一对应的 机器语言是一种纯数字的语言,面向处理器 汇编语言是一种助记符的语言,面向开发者 汇编语言具有具有较强的平台依赖性 汇编指令总是为某些特定的处理器而设计的 汇编语言能够实现高级语言无法实现的功能 更精确的时间计量和更实时的响应 可以高度优化代码尺寸和运行速度 越过高级语言对于底层操作的限制汇编语言程序设计 - 朱明 6汇编语言与高级语言 C/C+程序代码 转化成汇编语言后 高级语言与汇编语言之间是一对多的对应关系 汇编与处理器相关 汇编与汇编器相关汇编语言程序设计 - 朱明 7int X, Y;X = ( Y + 4 ) * 3;mov eax, Yadd eax, 4mov ebx, 3imul ebxmov X, eaxIA-32处理器体系结构 每一类处理器都有它特定的汇编语言指令 面向 Intel IA-32处理器构架的汇编语言指令 汇编语言也是一门触类旁通的程序设计艺术 IA-32处理器体系结构 微型计算的基本组成(基本知识,半复习) 汇编语言指令程序的运行流程 IA-32处理器的体系结构 IA-32处理器的内存管理 计算机的输入和输出系统 Intel微处理器发展历史(了解)汇编语言程序设计 - 朱明 8微型计算机组成 从宏观的组成结构上来讲 主板:处理器接口、外设接口、芯片组 中央处理器: ALU、 MMU、寄存器、 Cache 存储系统:内存、硬盘、光盘、磁带 显示系统:显卡、显示器 输入输出接口: PS2、 USB、串行接口 其他外部设备:打印机、扫描仪、数码设备 从功能和基本结构上来讲 中央处理器( CPU)、存储单元、输入输出设备 地址总线、数据总线和控制总线汇编语言程序设计 - 朱明 9微型计算机组成 微型计算机的基本结构 机器指令周期与机器时钟周期之间的关系 ?汇编语言程序设计 - 朱明 10中央处理器( CPU)ALU CU CLK寄存器内存系统 输入输出 设备 1 输入输出 设备 2数据总线地址总线控制总线IA-32指令的执行 控制单元从指令队列中取得指令并传递给指令指针 控制单元对取得的指令进行译码,将操作数传递给 ALU,并发送操作类型 如果该指令需要内存操作数,则控制单元将内存操作数复制到 CPU寄存器中 ALU执行指令,并根据要求操作相关的寄存器或内存,并更新处理器状态标志 控制单元将输出的操作数通过写操作存储到对应的内存单元中汇编语言程序设计 - 朱明 11取指令译码取操作数执行存储IA-32指令的执行 简化的 CPU内部结构:不同的指令对应不同的流程汇编语言程序设计 - 朱明 12内存(代码)(数据)指令缓存 指令指针指令译码器控制单元浮点运算单元寄存器ALU数据缓存数据总线IA-32指令的执行 指令的顺序执行所带来的困扰 硬件设备的空闲:处理器在执行下一条指令前的等待 流水线与多级流水线 启用三级的单条流水线后汇编语言程序设计 - 朱明 13S1 S2 S31 I-12 I-13 I-14 I-25 I-26 I-2S1 S2 S31 I-12 I-2 I-13 I-3 I-2 I-14 I-4 I-3 I-25 I-4 I-36 I-4IA-32指令的执行 多级流水线中指令阶段周期不同带来的困扰 硬件设备的空闲:处理器由于指令阶段周期不同的等待 超标量体系结构:增加硬件汇编语言程序设计 - 朱明 14S1 S2 S31 I-12 I-2 I-13 I-3 I-14 I-2 I-15 I-26 I-3 I-27 I-38 I-3S1 u v S31 I-12 I-2 I-13 I-3 I-1 I-24 I-4 I-3 I-2 I-15 I-3 I-4 I-26 I-4 I-37 I-4-S2-IA-32指令的执行 指令执行过程中内存的读取 内存地址被传输到地址总线上 RD = 0,以通知存储器要读取内存数据 内存控制器将数据传输到数据总线上,在此期间 CPU处于等待状态 RD = 1,以通知 CPU从数据总线上读取数据 CPU直接访问内存的一个严重的等待问题 如果超市有牛奶就好了汇编语言程序设计 - 朱明 15很猛的牛奶农 工厂 超市喝奶的人IA-32指令的执行 CPU直接访问内存的一个严重的等待问题 如果超市有牛奶就好了 通过使用缓存可以明显改善系统的内存性能,目前新型的民用 IA-32处理器已经具备了 3级缓存,并已经实现了缓存在 CPU内部的集成汇编语言程序设计 - 朱明 16很猛的牛奶农 工厂 超市喝奶的人系统内存L3 L2 L1中央处理器IA-32处理器的体系结构 IA-32处理器的五种模式: Real-address Mode:实模式,基本的 Intel 80x86处理器环境和一些新增的特性,实模式地址模式能够直接访问系统内存和硬件资源, 20位的地址线宽度。 Protected Mode:保护模式,目前处理器的基本模式,该模式下所有的指令和特性都是可用的,程序具备各自独立的内存段, 32位地址线宽度。 Virtual-8086 Mode:虚拟 8086模式,在保护模式下处理器可以安全的在多任务系统中执行时地址模式的软件,而不会影响其它运行的程序, 20位地址线宽度。 IA-32e Mode:仅存在于 IntelEM64T处理器上。 System Management Mode。汇编语言程序设计 - 朱明 17IA-32处理器的体系结构 IA-32的基本寄存器汇编语言程序设计 - 朱明 1832位通用寄存器EAXEBXECXEDXEBPESPESIEDIEFLAGSEIP16位段寄存器CSSSDSESFSGSIA-32处理器的体系结构 EAX:扩展累加寄存器,在乘法和除法指令中被自动调用 ECX:在某些指令中用作计数器 EBP:扩展帧指针寄存器,一般不用作普通算术运算和数据传输 ESP:扩展堆栈指针寄存器,极少用于普通的算术运算和数据传输 ESI和 EDI:扩展源指针和扩展目的指针,用于高速内存数据传输指令使用 特别说明,在 IA-32e模式下均扩展为 64位寄存器,例如 RAX等。汇编语言程序设计 - 朱明 1932位通用寄存器EAXEBXECXEDXEBPESPESIEDIIA-32处理器的体系结构 32位通用寄存器的分解使用 32位 EAX - 低 16位 AX - 高 8位 AH + 低 8位 AL EAX、 EBX、 ECX和 EDX都有如下关系汇编语言程序设计 - 朱明 20EAXAXALAH32位 16位 高 8位 低 8位EAX AX AH ALEBX BX BH BLECX CX CH CLEDX DX DL DLIA-32处理器的体系结构 16位段寄存器:实地址模式下,用于存放段的基址( CS?SS?DS?)。保护模式下用于存放段描述符表的指针 EFLAGS:由控制 CPU的位或者 CPU的运算结果的独立位构成 CF( Carry)、 OF( Overflow) SF( Sign)、 ZF( Zero) AC( Auxiliary)、 PF( Parity) 汇编语言课程系统环境设置说明 EIP:指令指针,存放下一条要执行的指令的地址汇编语言程序设计 - 朱明 2116位段寄存器CSSSDSESFSGSEFLAGSEIPIA-32处理器的体系结构 除基本寄存器外,还有系统寄存器 中断描述符表寄存器( IDTR), 48位 高 32位线性地址 + 低 16位的界限 全局描述符表寄存器( GDTR), 48位 高 32位线形地址 + 低 16位的界限 局部描述符表寄存器( LDTR), 16位 任务寄存器( TR), 16位 指向任务状态段( TSS)描述符表 调试寄存器( DR) 模型专用寄存器( MSR) 控制寄存器( CR0、 CR1、 CR2、 CR3、 CR4)汇编语言程序设计 - 朱明 22IA-32处理器的体系结构 除基本寄存器外,还有系统寄存器 控制寄存器 CR0 PG( 31):允许分页模式 CD( 30):禁用缓存 ET( 4):处理器扩展 TS( 3):任务切换 EM( 2):模拟协处理器 MP( 1):监控协处理器 PE( 0):允许保护模式汇编语言程序设计 - 朱明 23PGCDETTSEMMPPEIA-32处理器的体系结构 除基本寄存器外,还有系统寄存器 控制寄存器 CR1 CR1是一个没有被定义的寄存器,供处理器将来扩展使用 控制寄存器 CR2 页故障线性地址寄存器 保存最后一次出现页故障的 32位线性地址 控制寄存器 CR3 页目录基址寄存器 只用到了 3112位,但低 12位没有被使用(与页大小有关) i486后增加了 PCD和 PWT控制位汇编语言程序设计 - 朱明 24页目录基址IA-32处理器的体系结构 除基本寄存器外,还有系统寄存器 控制寄存器 CR4( Pentium级别以上) PCE( 8):允许性能计数器,与 RDPMC之令有关 PGE( 7):允许页全局 MCE( 6):允许机器检查, Pentium后的 CPU增加的机制 PAE( 5):允许物理地址扩展, 36位的页物理地址扩展 PSE( 4):页大小扩展 DE( 3):调试扩展 TSD( 2):禁用时间戳 PVI( 1):保护模式虚拟中断 VME( 0):虚拟 8086扩展汇编语言程序设计 - 朱明 25PCEPGEMCEPAEPSEDETSDPVIVMEIA-32处理器的体系结构 处理器模式之间的切换汇编语言程序设计 - 朱明 26实地址模式保护模式虚拟 8086模式系统管理模式IA-32e模式复位上电CR0.PE = 1复位或CR0.PE = 1RSMSMI#SMI#复位或RSMRSMSMI#RSMSMI#未知LME = 1CR0.PG=1VM = 1VM = 0IA-32处理器的内存管理 实地址模式: IA-32使用 20位的地址线,但使用 16位段寄存器 汇编语言程序设计 - 朱明 2700000H10000H20000H30000H40000H50000H60000H70000H80000H90000HA0000H 8000:FFFF8000:00008000:12348000 - 段值1234 偏移地址81234h线性地址8000h * 10h + 1234h = 81234hIA-32处理器的内存管理 保护模式 完整的 32位地址和 32位的寄存器 保护模式下依然分段,段寄存器指向段描述符表 CS代码段描述符、 DS数据段描述符(、 SS堆栈段描述符) 保护模式下三种内存管理 -1 平坦分段模式 唯一且必须的全局描述符表 界限用来描述该段的大小 0020h * 1000 = 20000h汇编语言程序设计 - 朱明 2800000000 0020 基址 界限 描述0000000000020000FFFFFFFFIA-32处理器的内存管理 保护模式下三种内存管理 -2 多段模式 每一个程序都由他自己的描述符表:局部描述符表( LDT) LDT表项指向不同的段 0002h * 1000 = 2000h汇编语言程序设计 - 朱明 2900003000 0002 基址 界限 描述 00003000000080000003600000008000 000A 00026000 00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上半年上海市卫生健康技术评价中心工作人员公开招聘考前自测高频考点模拟试题及答案详解(易错题)
- 2025年4月广东深圳小学光明学校曙光校区、狮山校区赴济南定点面向2025年应届毕业生招聘教师11人模拟试卷含答案详解
- 安全培训教师体会课件
- 2025年福建省莆田市秀屿区上塘珠宝城实业有限公司招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 2025年合肥复兴控股集团第一批人员招聘27人考前自测高频考点模拟试题及1套完整答案详解
- 安全培训教员资质课件
- 广播电台培训课件
- 2025贵州黔西南州望谟县消防救援大队招聘政府专职消防文员1人模拟试卷附答案详解
- Human-ZIC1-mRNA-生命科学试剂-MCE
- Heptanamide-Enanthamide-生命科学试剂-MCE
- 建筑设计数字化协同工作方案
- 新入行员工安全教育培训课件
- 原生家庭探索课件
- GB/T 42062-2022医疗器械风险管理对医疗器械的应用
- GB/T 30106-2013钟表防水手表
- 多模态语篇分析课件
- 《卫生检验与检疫学导论》教学大纲
- 前厅服务与管理课程标准
- 常见药物之间的配伍禁忌课件
- DB32-T 4357-2022 建筑工程施工机械安装质量检验规程
- 【外研社Unipus】新探索(基础级)读写U1课件-AE1
评论
0/150
提交评论