ImageVerifierCode 换一换
格式:PPT , 页数:38 ,大小:2.71MB ,
文档编号:5886941      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5886941.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(汇编语言程序设计01课程介绍与IA-32处理器结构资料课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

汇编语言程序设计01课程介绍与IA-32处理器结构资料课件.ppt

1、_01_课程介绍与IA-32处理器结构大连理工大学软件学院_朱明2009年5月31日_ V1.1课程说明 课程时间:20082009学年度第三学期 课程学时:24学时课程 课程对象:2007级软件和网络专业本科生 参考书籍:Assembly Language for Intel-Based Computers,5th edition Intel汇编语言程序设计(第五版)课程环境:MASM系统环境 参考汇编语言课程系统环境设置说明 课程资料:ftp:/210.30.96.42汇编语言程序设计-朱明MASM系统环境 汇编语言课程系统环境设置说明 打开现有工程 语法高亮 汇编工程属性 观察与调试 1

2、6位程序设置 建立新工程 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:

3、irvine文件夹下4汇编语言程序设计-朱明学到什么 体系结构,数据和布尔逻辑(基础知识,半复习)IA-32处理器的内存管理方式(基础知识,半复习)IA-32处理器的实模式、保护模式和虚拟模式 高级语言到汇编语言和机器语言的编译过程 IA-32汇编语言指令与应用程序设计 IA-32汇编语言的基本指令和高级过程 汇编语言代码与C+程序之间的接口 汇编语言与操作系统交互的程序设计 汇编语言的硬件直接程序设计汇编语言程序设计-朱明5关于汇编 汇编语言与机器语言是一一对应的 机器语言是一种纯数字的语言,面向处理器 汇编语言是一种助记符的语言,面向开发者 汇编语言具有具有较强的平台依赖性 汇编指令总是为

4、某些特定的处理器而设计的 汇编语言能够实现高级语言无法实现的功能 更精确的时间计量和更实时的响应 可以高度优化代码尺寸和运行速度 越过高级语言对于底层操作的限制汇编语言程序设计-朱明6汇编语言与高级语言 C/C+程序代码 转化成汇编语言后 高级语言与汇编语言之间是一对多的对应关系 汇编与处理器相关 汇编与汇编器相关汇编语言程序设计-朱明7int X,Y;X=(Y+4)*3;mov eax,Yaddeax,4mov ebx,3imul ebxmov X,eaxIA-32处理器体系结构 每一类处理器都有它特定的汇编语言指令 面向Intel IA-32处理器构架的汇编语言指令 汇编语言也是一门触类旁

5、通的程序设计艺术 IA-32处理器体系结构 微型计算的基本组成(基本知识,半复习)汇编语言指令程序的运行流程 IA-32处理器的体系结构 IA-32处理器的内存管理 计算机的输入和输出系统 Intel微处理器发展历史(了解)汇编语言程序设计-朱明8微型计算机组成 从宏观的组成结构上来讲 主板:处理器接口、外设接口、芯片组 中央处理器:ALU、MMU、寄存器、Cache 存储系统:内存、硬盘、光盘、磁带 显示系统:显卡、显示器 输入输出接口:PS2、USB、串行接口 其他外部设备:打印机、扫描仪、数码设备 从功能和基本结构上来讲 中央处理器(CPU)、存储单元、输入输出设备 地址总线、数据总线和

6、控制总线汇编语言程序设计-朱明9微型计算机组成 微型计算机的基本结构机器指令周期与机器时钟周期之间的关系?汇编语言程序设计-朱明10中央处理器(CPU)ALUCUCLK寄存器内存系统输入输出设备1输入输出设备2数据总线地址总线控制总线IA-32指令的执行 控制单元从指令队列中取得指令并传递给指令指针 控制单元对取得的指令进行译码,将操作数传递给ALU,并发送操作类型 如果该指令需要内存操作数,则控制单元将内存操作数复制到CPU寄存器中 ALU执行指令,并根据要求操作相关的寄存器或内存,并更新处理器状态标志 控制单元将输出的操作数通过写操作存储到对应的内存单元中汇编语言程序设计-朱明11取指令译

7、码取操作数执行存储IA-32指令的执行 简化的CPU内部结构:不同的指令对应不同的流程汇编语言程序设计-朱明12内存(代码)(数据)指令缓存指令指针指令译码器控制单元浮点运算单元寄存器ALU数据缓存数据总线IA-32指令的执行 指令的顺序执行所带来的困扰 硬件设备的空闲:处理器在执行下一条指令前的等待 流水线与多级流水线 启用三级的单条流水线后汇编语言程序设计-朱明13S1S2S31I-12I-13I-14I-25I-26I-2S1S2S31I-12I-2I-13I-3I-2I-14I-4I-3I-25I-4I-36I-4IA-32指令的执行 多级流水线中指令阶段周期不同带来的困扰硬件设备的空

8、闲:处理器由于指令阶段周期不同的等待 超标量体系结构:增加硬件汇编语言程序设计-朱明14S1S2S31I-12I-2I-13I-3I-14I-2I-15I-26I-3I-27I-38I-3S1uvS31I-12I-2I-13I-3I-1I-24I-4I-3I-2I-15I-3I-4I-26I-4I-37I-4-S2-IA-32指令的执行 指令执行过程中内存的读取 内存地址被传输到地址总线上 RD=0,以通知存储器要读取内存数据 内存控制器将数据传输到数据总线上,在此期间CPU处于等待状态 RD=1,以通知CPU从数据总线上读取数据 CPU直接访问内存的一个严重的等待问题 如果超市有牛奶就好了汇

9、编语言程序设计-朱明15很猛的牛奶农工厂超市喝奶的人IA-32指令的执行CPU直接访问内存的一个严重的等待问题 如果超市有牛奶就好了 通过使用缓存可以明显改善系统的内存性能,目前新型的民用IA-32处理器已经具备了3级缓存,并已经实现了缓存在CPU内部的集成汇编语言程序设计-朱明16很猛的牛奶农工厂超市喝奶的人系统内存L3L2L1中央处理器IA-32处理器的体系结构 IA-32处理器的五种模式:Real-address Mode:实模式,基本的Intel 80 x86处理器环境和一些新增的特性,实模式地址模式能够直接访问系统内存和硬件资源,20位的地址线宽度。Protected Mode:保护

10、模式,目前处理器的基本模式,该模式下所有的指令和特性都是可用的,程序具备各自独立的内存段,32位地址线宽度。Virtual-8086 Mode:虚拟8086模式,在保护模式下处理器可以安全的在多任务系统中执行时地址模式的软件,而不会影响其它运行的程序,20位地址线宽度。IA-32e Mode:仅存在于IntelEM64T处理器上。System Management Mode。汇编语言程序设计-朱明17IA-32处理器的体系结构 IA-32的基本寄存器汇编语言程序设计-朱明1832位通用寄存器EAXEBXECXEDXEBPESPESIEDIEFLAGSEIP16位段寄存器CSSSDSESFSGS

11、IA-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和ED

12、X都有如下关系汇编语言程序设计-朱明20EAXAXALAH32位16位高8位低8位EAXAXAHALEBXBXBHBLECXCXCHCLEDXDXDLDLIA-32处理器的体系结构 16位段寄存器:实地址模式下,用于存放段的基址(CS?SS?DS?)。保护模式下用于存放段描述符表的指针 EFLAGS:由控制CPU的位或者CPU的运算结果的独立位构成 CF(Carry)、OF(Overflow)SF(Sign)、ZF(Zero)AC(Auxiliary)、PF(Parity)汇编语言课程系统环境设置说明 EIP:指令指针,存放下一条要执行的指令的地址汇编语言程序设计-朱明2116位段寄存器CSS

13、SDSESFSGSEFLAGSEIPIA-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

14、(4):处理器扩展 TS(3):任务切换 EM(2):模拟协处理器 MP(1):监控协处理器 PE(0):允许保护模式汇编语言程序设计-朱明23PGCDETTSEMMPPEIA-32处理器的体系结构 除基本寄存器外,还有系统寄存器 控制寄存器CR1 CR1是一个没有被定义的寄存器,供处理器将来扩展使用 控制寄存器CR2 页故障线性地址寄存器 保存最后一次出现页故障的32位线性地址 控制寄存器CR3 页目录基址寄存器 只用到了3112位,但低12位没有被使用(与页大小有关)i486后增加了PCD和PWT控制位汇编语言程序设计-朱明24页目录基址IA-32处理器的体系结构 除基本寄存器外,还有系统

15、寄存器 控制寄存器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模式复

16、位上电CR0.PE=1复位或CR0.PE=1RSMSMI#SMI#复位或RSMRSMSMI#RSMSMI#未知LME=1CR0.PG=1VM=1VM=0IA-32处理器的内存管理 实地址模式:IA-32使用20位的地址线,但使用16位段寄存器汇编语言程序设计-朱明2700000H10000H20000H30000H40000H50000H60000H70000H80000H90000HA0000H8000:FFFF8000:00008000:12348000-段值1234 偏移地址81234h线性地址8000h*10h+1234h=81234hIA-32处理器的内存管理 保护模式 完整的32位

17、地址和32位的寄存器 保护模式下依然分段,段寄存器指向段描述符表 CS代码段描述符、DS数据段描述符(、SS堆栈段描述符)保护模式下三种内存管理-1 平坦分段模式 唯一且必须的全局描述符表 界限用来描述该段的大小 0020h*1000=20000h汇编语言程序设计-朱明28000000000020.基址界限 描述0000000000020000FFFFFFFFIA-32处理器的内存管理 保护模式下三种内存管理-2 多段模式 每一个程序都由他自己的描述符表:局部描述符表(LDT)LDT表项指向不同的段 0002h*1000=2000h汇编语言程序设计-朱明29000030000002.基址界限

18、描述00003000000080000003600000008000000A.000260000010.000050000001200000026000IA-32的内存管理 保护模式下三种内存管理-3 分页模式 允许将段再划分为4KB(或其他大小)的页 操作系统通过“虚拟内存管理器”管理虚拟内存(虚拟内存是操作系统映射的所有的页的集合)分页机制解决了系统内存资源有限的问题 程序在运行前必须被读入内存才能被执行 分页机制允许在任务运行时,未被使用页依然保存在内存中,而已经使用的页则交换到磁盘中 若CPU将要执行的页被交换至硬盘中,则产生一个页错误,并将该页重新被载入到内存中 但需要特别注意的是,

19、频繁的页交换会带来系统性能的下降汇编语言程序设计-朱明30输入与输出系统 我们的计算机是运行程序的?功能实现的4个运行层次 高级语言的某些功能函数 调用操作系统所提供的API BIOS和驱动提供系统与设备通讯的功能 硬件负责实现这个功能 打印一个字符串的运行层次 向标准的输出上写一个字符串 调用系统的函数,传递字符串指针 操作系统调用BIOS功能,传递字符串内容并且光标位置 BIOS将字符的字体传递给视频控制卡 视频控制卡产生显示信号汇编语言程序设计-朱明31功能函数操作系统BIOS/驱动硬件设备输入与输出系统 高级语言的功能函数库无法越过操作作系统实现多个层次上的编程 汇编语言在输入和输出上

20、更加灵活 直接调用函数库 调用系统函数 调用BIOS功能 硬件层面上的控制 可控制性和可移植性的问题 越高的层次越具有可移植性 越低的层次越具有可控制性汇编语言程序设计-朱明32功能函数操作系统BIOS/驱动硬件设备汇编语言Intel微处理器发展历史 IA-32和Intel64体系结构 The Intel386 Processor(1985)The Intel486 Processor(1989)The Intel Pentium Processor(1993)The P6 Family of Processors(1995-1999)Pentium Pro and Pentium II Th

21、e Intel Pentium 4 Processor Family(2000-2006)The Intel Xeon Processor(2001-2007)The Intel Pentium M Processor(2003-)The Intel Pentium Processor Extreme Edition(2005-2007)汇编语言程序设计-朱明33Intel微处理器发展历史 IA-32和Intel64体系结构The Intel Core Duo and Intel Core Solo Processors(2006-2007)The Intel Xeon Processor 5

22、100,5300 Series and Intel Core2 Processor Family(2006-)The Intel Xeon Processor 5200,5400,7400 Series and Intel Core2 Processor Family(2007-)The Intel Atom Processor Family(2008-)The Intel Corei7 Processor Family(2008-)汇编语言程序设计-朱明34Intel微处理器发展历史对应的指令集发展 x86,x87,MMX SSE、SSE2、SSE3、SSSE3、SSE4 关于处理器的资料

23、Intel 64 and IA-32 Architectures Software Developers Manual Volume 1:Basic Architecture Volume 3B:System Programming Guide 其他的Volume 以上的资料是在IA-32高级编程的最好参考资料汇编语言程序设计-朱明35章节回顾 本章中以下内容是应当掌握 CPU的功能和结构 指令的执行和流水线结构 IA-32的基本操作模式 IA-32的内部寄存器 IA-32的内存管理 计算机系统的宏观组成 此外的内容应当自己查阅了解 操作系统:启动代码与处理器模式的切换 处理器类型及其功能特性

24、、发展历史等汇编语言程序设计-朱明36章节回顾 以下的问题我们应当轻松回答 相对于高级语言,汇编语言在哪些方面更为优秀?指令执行的三个基本步骤是什么?IA-32的三种基本运行模式是什么?IA-32中有哪些32位的通用寄存器,有什么特殊功能?IA-32处理器的标志寄存器有哪些常用状态位?保护模式和实地址模式可寻址的内存范围是多大?实地址模式下线性地址和段偏移地址的转换计算?保护模式下的三个特殊的段寄存器的作用?IA-32处理器分页特性的优点是什么?IA-32、超标量、MMX的诞生阶段?汇编语言程序设计-朱明37思考问题 实模式到保护模式的切换 不简简单单是CR0.PE=1的问题 实模式与保护模式在内存管理上的区别 地址?16位段寄存器?其他的状态表?如何实现一个基本的切换过程?建立GDT,并装载GDTR 设置对应的代码段描述符、数据段描述符、堆栈描述符等 启用A20地址线(可选)A20是PC上特殊的控制特殊控制信号,用来控制硬件上是否可以访问1M以上的某些(偶数M的)内存空间 置位CR0中的PE控制位 详细参考linux系统的启动代码汇编语言程序设计-朱明38

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|