32位汇编语言解读课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《32位汇编语言解读课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 32 汇编语言 解读 课件
- 资源描述:
-
1、第第1 1章章 汇编语言基础汇编语言基础1.1 1.1 英特尔英特尔80 x8680 x86处理器处理器1.2 1.2 个人计算机系统个人计算机系统1.3 1.3 汇编语言程序格式汇编语言程序格式第第1 1章章 汇编语言基础汇编语言基础了解软硬件开发环境了解软硬件开发环境熟悉通用寄存器和存储器组织熟悉通用寄存器和存储器组织掌握汇编语言的掌握汇编语言的语句格式、程序框架和开发方法语句格式、程序框架和开发方法第第1 1章章 汇编语言基础汇编语言基础3 3Intel 80861.1 1.1 英特尔英特尔80 x8680 x86处理器处理器80386803868048680486奔腾奔腾奔腾奔腾II奔
2、腾奔腾4802868028680868086奔腾奔腾III酷睿多核系列酷睿多核系列40044004IA-32处理器处理器16位位80 x86处理器处理器奔腾多核系列奔腾多核系列Intel 64处理器处理器第第1 1章章 汇编语言基础汇编语言基础4 41.1.1 161.1.1 16位位80 x8680 x86处理器处理器1616位结构处理器位结构处理器8086/80888086/8088指令系统提供指令系统提供1616位基本指令集位基本指令集80186/8018880186/80188增加若干条实用指令增加若干条实用指令 80868086的工作方式是实方式(的工作方式是实方式(Real Mod
3、eReal Mode)8028680286增加保护方式(增加保护方式(Protected ModeProtected Mode)8028680286引入了系统指令引入了系统指令n为操作系统等核心程序提供处理器控制功能为操作系统等核心程序提供处理器控制功能指令系统、指令集(指令系统、指令集(Instruction Set)第第1 1章章 汇编语言基础汇编语言基础5 51.1.2 IA-321.1.2 IA-32处理器处理器8038680386引入英特尔引入英特尔3232位指令集结构位指令集结构ISAISAn兼容原兼容原1616位位8028680286指令系统指令系统n全面升级为全面升级为3232
4、位位n提供虚拟提供虚拟80868086工作方式(工作方式(Virtual 8086 ModeVirtual 8086 Mode)8048680486集成浮点处理单元支持浮点指令集成浮点处理单元支持浮点指令PentiumPentium系列系列n陆续增加若干整数指令、完善浮点指令陆续增加若干整数指令、完善浮点指令n增加一系列多媒体指令(增加一系列多媒体指令(SIMDSIMD指令)指令)IA-32(Intel Architecture-32)第第1 1章章 汇编语言基础汇编语言基础6 61.1.3 Intel 641.1.3 Intel 64处理器处理器引入引入6464位英特尔指令集结构位英特尔指令
5、集结构n兼容兼容3232位指令系统位指令系统n新增新增6464位工作方式位工作方式继续丰富多媒体指令继续丰富多媒体指令处理器集成多核(处理器集成多核(Multi-coreMulti-core)技术)技术处理器进入多核时代处理器进入多核时代Many core第第1 1章章 汇编语言基础汇编语言基础7 71.2 1.2 个人计算机系统个人计算机系统硬件(硬件(HardwareHardware):物理设备):物理设备软件(软件(SoftwareSoftware):程序和文档):程序和文档运算器运算器 控制器控制器寄存器组寄存器组 主存储器主存储器 总线总线输入输出接口电路输入输出接口电路外部设备外部
6、设备 软件软件微处理器微处理器微型计算机微型计算机微型计算机系统微型计算机系统第第1 1章章 汇编语言基础汇编语言基础8 81.2.1 1.2.1 硬件组成硬件组成I/O接接口口主存储器主存储器系统总线系统总线CPU寄存器寄存器控制器控制器运算器运算器辅助存储器辅助存储器输入设备输入设备输出设备输出设备汇编语言程序员将硬件抽象为:汇编语言程序员将硬件抽象为:寄存器寄存器、存储器地址存储器地址和和输入输出地址输入输出地址第第1 1章章 汇编语言基础汇编语言基础9 91.2.2 1.2.2 寄存器(寄存器(RegisterRegister)处理器内部的高速存储单元处理器内部的高速存储单元用于暂时存
7、放程序执行过程中的代码和数据用于暂时存放程序执行过程中的代码和数据透明寄存器透明寄存器n对应用人员不可见、不能编程直接控制对应用人员不可见、不能编程直接控制可编程(可编程(ProgrammableProgrammable)寄存器)寄存器n具有引用名称、供编程使用具有引用名称、供编程使用n通用寄存器(通用寄存器(General-Purpose RegisterGeneral-Purpose Register)n具有多种用途具有多种用途n数量较多、使用频度较高数量较多、使用频度较高n专用寄存器专用寄存器n各自只用于特定目的各自只用于特定目的第第1 1章章 汇编语言基础汇编语言基础1010IA-32
8、IA-32常用寄存器常用寄存器8个个32位通用寄存器位通用寄存器6个个16位段寄存器位段寄存器1个个32位标志寄存器位标志寄存器1个个32位指令指针位指令指针第第1 1章章 汇编语言基础汇编语言基础11111.1.通用寄存器通用寄存器处理器最常使用的整数通用寄存器处理器最常使用的整数通用寄存器可用于保存整数数据、地址等可用于保存整数数据、地址等 8 8个个3232位通用寄存器位通用寄存器EAXEAX,EBXEBX,ECXECX,EDXEDXESIESI,EDIEDI,EBPEBP,ESPESP8 8个个1616位通用寄存器位通用寄存器AXAX,BXBX,CXCX,DXDXSISI,DIDI,B
9、PBP,SPSP8 8个个8 8位通用寄存器位通用寄存器AHAH,BHBH,CHCH,DHDHALAL,BLBL,CLCL,DLDL318 716 15AHAL0AXEAX既是一个整体既是一个整体又可独立使用又可独立使用第第1 1章章 汇编语言基础汇编语言基础1212通用寄存器的名称通用寄存器的名称E EAXAXAccumulatorAccumulator累加器累加器E EBXBXBaseBase基址寄存器基址寄存器E ECXCXCounterCounter计数器计数器E EDXDXDataData数据寄存器数据寄存器E ESISISource IndexSource Index源变址寄存器源
10、变址寄存器E EDIDIDestination IndexDestination Index目的变址寄存器目的变址寄存器E EBPBPBase PointerBase Pointer基址指针基址指针E ESPSPStack PointerStack Pointer堆栈指针堆栈指针第第1 1章章 汇编语言基础汇编语言基础13132.2.标志寄存器标志寄存器标志(标志(FlagFlag)n反映指令执行结果或控制指令执行形式反映指令执行结果或控制指令执行形式n用一个或多个二进制位表示一种标志用一个或多个二进制位表示一种标志n用用0 0和和1 1的不同组合表达标志的不同状态的不同组合表达标志的不同状态
11、80868086支持支持1616位标志寄存器位标志寄存器FLAGSFLAGSIA-32IA-32处理器形成处理器形成3232位位EFLAGSEFLAGS标志寄存器标志寄存器n状态标志:状态标志:记录指令执行结果的辅助信息记录指令执行结果的辅助信息n控制标志:方向标志控制标志:方向标志DFDF,仅用于串操作指令,仅用于串操作指令n系统标志:系统标志:控制操作系统或核心管理程序的操作控制操作系统或核心管理程序的操作方式方式示意图示意图第第1 1章章 汇编语言基础汇编语言基础1414标志寄存器标志寄存器EFLAGSEFLAGS返回返回第第1 1章章 汇编语言基础汇编语言基础1515处理器最基本的标志
12、:状态标志处理器最基本的标志:状态标志用来记录指令执行结果的辅助信息用来记录指令执行结果的辅助信息加减运算和逻辑运算指令主要设置它们加减运算和逻辑运算指令主要设置它们其他有些指令的执行也会相应地设置它们其他有些指令的执行也会相应地设置它们处理器主要使用其中处理器主要使用其中5 5个构成各种条件,分支个构成各种条件,分支指令判断这些条件实现程序分支指令判断这些条件实现程序分支 8086的标志的标志OF1115 12DF10IF9TF8SF7ZF605AF403PF211CF0第第1 1章章 汇编语言基础汇编语言基础16163.3.指令指针寄存器指令指针寄存器EIPEIP保存将要执行的指令在主存的
13、存储器地址保存将要执行的指令在主存的存储器地址EIPEIP是专用寄存器是专用寄存器n顺序执行时自动增量顺序执行时自动增量(加上该指令的字节数),(加上该指令的字节数),指向下一条指令指向下一条指令n分支、调用等操作时执行控制转移指令修改分支、调用等操作时执行控制转移指令修改,引,引起程序转移到指定的指令执行起程序转移到指定的指令执行n出现中断或异常时被处理器赋值而相应改变出现中断或异常时被处理器赋值而相应改变3116 15IP0EIP第第1 1章章 汇编语言基础汇编语言基础17174.4.段寄存器段寄存器段(段(SegmentSegment)是用于安排相关代码或数据的)是用于安排相关代码或数据
14、的一个主存区域一个主存区域段寄存器表明某个段在主存中的位置段寄存器表明某个段在主存中的位置6 6个个1616位段寄存器:位段寄存器:CS DS SS ES FS GSCS DS SS ES FS GS应用程序主要涉及应用程序主要涉及3 3类段类段n代码段(代码段(Code SegmentCode Segment)存放程序中指令代码存放程序中指令代码 n数据段(数据段(Data SegmentData Segment)存放当前运行程序所用数据存放当前运行程序所用数据n堆栈段(堆栈段(Stack SegmentStack Segment)指明程序使用的堆栈区域指明程序使用的堆栈区域主存空间主存空间
15、指令段指令段数据段数据段堆栈段堆栈段程程序序第第1 1章章 汇编语言基础汇编语言基础18181.2.3 1.2.3 存储器组织存储器组织主存储器容量很大,被划分成许多存储单元主存储器容量很大,被划分成许多存储单元每个存储单元被编排一个号码每个存储单元被编排一个号码n即存储单元地址即存储单元地址n称为存储器地址(称为存储器地址(Memory AddressMemory Address)每个存储单元以字节为基本存储单位每个存储单元以字节为基本存储单位n即字节编址(即字节编址(Byte AddressableByte Addressable)n一个字节(一个字节(ByteByte)等于)等于8 8个
16、二进制位(个二进制位(BitBit)n二进制位是计算机存储信息的最小单位二进制位是计算机存储信息的最小单位n1616位(位(2 2个字节)构成一个字(个字节)构成一个字(WordWord)n3232位(位(4 4个字节)构成一个双字(个字节)构成一个双字(Double WordDouble Word)示意图示意图第第1 1章章 汇编语言基础汇编语言基础1919数据的位格式数据的位格式返回返回D7D6D5D4D3D2D1D0字节字节LSBMSBD15D1D0字字LSBMSBD31D1D0双字双字LSBMSB318 716 15高字节高字节低字节低字节0字字双字双字第第1 1章章 汇编语言基础汇编
17、语言基础20201.1.存储模型存储模型物理存储器以字节为基本存储单位物理存储器以字节为基本存储单位每个存储单元被分配一个唯一的地址每个存储单元被分配一个唯一的地址这个地址就是物理地址这个地址就是物理地址物理地址空间从物理地址空间从0 0开始顺序编排,直到处理器支持的开始顺序编排,直到处理器支持的最大存储单元最大存储单元n80868086处理器支持处理器支持1MB1MB存储器:存储器:00000H00000HFFFFFHFFFFFHnIA-32IA-32处理器支持处理器支持4GB4GB存储器:存储器:00000000H00000000HFFFFFFFFHFFFFFFFFH操作系统利用存储管理单
18、元进行存储管理,程序并操作系统利用存储管理单元进行存储管理,程序并不直接寻址物理存储器不直接寻址物理存储器IA-32IA-32处理器提供处理器提供3 3种存储模型,用于程序访问存储种存储模型,用于程序访问存储器器示意图示意图第第1 1章章 汇编语言基础汇编语言基础2121存储器地址空间存储器地址空间返回返回FFFFFFFFH00000000H00000001H00000002H00000003H00000004H双字双字字节字节字字字节字节字节字节字字字节字节第第1 1章章 汇编语言基础汇编语言基础2222IA-32IA-32处理器的存储模型处理器的存储模型(1 1)平展存储模型()平展存储模
19、型(Flat Memory Flat Memory M Modelodel)n存储器是一个连续的地址空间:线性地址空间存储器是一个连续的地址空间:线性地址空间nIA-32IA-32处理器支持处理器支持4GB4GB容量线性地址空间容量线性地址空间(2 2)段式存储模型()段式存储模型(Segmented Segmented M Memory Modelemory Model)n存储器由一组独立的地址空间:段(存储器由一组独立的地址空间:段(SegmentSegment)n每个段都可以达到每个段都可以达到4GB4GB容量容量n在处理器内部,所有的段都被映射到线性地址空间在处理器内部,所有的段都被映
20、射到线性地址空间(3 3)实地址存储模型()实地址存储模型(Real-address Real-address M Memory Modelemory Model)n80868086处理器的存储模型处理器的存储模型n段式存储模型的特例段式存储模型的特例n线性地址空间最大为线性地址空间最大为1MB1MB容量,段最大为容量,段最大为64KB64KB第第1 1章章 汇编语言基础汇编语言基础23232.2.工作方式工作方式(1 1)保护方式()保护方式(Protected Protected M Modeode)nIA-32IA-32处理器固有的工作状态处理器固有的工作状态n具有强大的段页式存储管理和
21、特权与保护能力具有强大的段页式存储管理和特权与保护能力n使用全部使用全部3232条地址总线,可寻址条地址总线,可寻址4GB4GB物理存储器物理存储器n使用平展或段式存储模型使用平展或段式存储模型n利用虚拟利用虚拟80868086方式支持实地址方式支持实地址80868086软件软件(2 2)实地址方式()实地址方式(Real-address ModeReal-address Mode)n可以进行可以进行3232位处理的快速位处理的快速80868086n只能寻址只能寻址1MB1MB物理存储器空间,每个段不超过物理存储器空间,每个段不超过64KB64KBn可以使用可以使用3232位寄存器、位寄存器、
22、3232位操作数和位操作数和3232位寻址方式位寻址方式n只能支持实地址存储模型只能支持实地址存储模型(3 3)系统管理方式()系统管理方式(System Management ModeSystem Management Mode)n实现供节能和系统安全管理实现供节能和系统安全管理第第1 1章章 汇编语言基础汇编语言基础24243.3.逻辑地址(逻辑地址(Logical AddressLogical Address)在处理器内部、程序员编程时采用的地址在处理器内部、程序员编程时采用的地址逻辑地址逻辑地址段基地址段基地址偏移地址偏移地址n段基地址段基地址在主存中的起始地址在主存中的起始地址n偏移
23、地址偏移地址距离段基地址的位移量距离段基地址的位移量某个存储单元可以有多个逻辑地址,但只有一某个存储单元可以有多个逻辑地址,但只有一个唯一的物理地址个唯一的物理地址编程使用编程使用处理器转换处理器转换地址总线输出地址总线输出示意图示意图第第1 1章章 汇编语言基础汇编语言基础2525逻辑地址与物理地址逻辑地址与物理地址返回返回1081082082083083081061062062063063061071072072073073071091092092093093091101101051051041041031031021021011012102102052052042042032032022
24、02201201310310305305304304303303302302301301080818182828060616162626070717172727090919192929101005050404030302020101202015151414131312121111303025252424232322222121逻辑地址相对地址:逻辑地址相对地址:205(2层层05号房间)号房间)物理地址绝对地址:物理地址绝对地址:15(第(第15号房间)号房间)第第1 1章章 汇编语言基础汇编语言基础2626基本段的逻辑地址基本段的逻辑地址代码段代码段(Code SegmentCode Seg
展开阅读全文