《汇编语言基础》PPT课件.ppt
《《汇编语言基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汇编语言基础》PPT课件.ppt(79页珍藏版)》请在三一办公上搜索。
1、第1章 汇编语言基础,1.1 英特尔80 x86处理器1.2 个人计算机系统1.3 汇编语言程序格式,第1章 汇编语言基础,了解软硬件开发环境熟悉通用寄存器和存储器组织掌握汇编语言的语句格式、程序框架和开发方法,3,Intel 8086,1.1 英特尔80 x86处理器,80386,80486,奔腾,奔腾II,奔腾4,80286,8086,奔腾III,酷睿多核系列,4004,IA-32处理器,16位80 x86处理器,奔腾多核系列,Intel 64处理器,4,1.1.1 16位80 x86处理器,16位结构处理器8086/8088指令系统提供16位基本指令集80186/80188增加若干条实用
2、指令 8086的工作方式是实方式(Real Mode)80286增加保护方式(Protected Mode)80286引入了系统指令为操作系统等核心程序提供处理器控制功能,指令系统、指令集(Instruction Set),5,1.1.2 IA-32处理器,80386引入英特尔32位指令集结构ISA兼容原16位80286指令系统全面升级为32位提供虚拟8086工作方式(Virtual 8086 Mode)80486集成浮点处理单元支持浮点指令Pentium系列陆续增加若干整数指令、完善浮点指令增加一系列多媒体指令(SIMD指令),IA-32(Intel Architecture-32),6,1
3、.1.3 Intel 64处理器,引入64位英特尔指令集结构兼容32位指令系统新增64位工作方式继续丰富多媒体指令处理器集成多核(Multi-core)技术,处理器进入多核时代,Many core,7,1.2 个人计算机系统,硬件(Hardware):物理设备软件(Software):程序和文档,8,1.2.1 硬件组成,汇编语言程序员将硬件抽象为:寄存器、存储器地址和输入输出地址,9,1.2.2 寄存器(Register),处理器内部的高速存储单元用于暂时存放程序执行过程中的代码和数据透明寄存器对应用人员不可见、不能编程直接控制可编程(Programmable)寄存器具有引用名称、供编程使用
4、通用寄存器(General-Purpose Register)具有多种用途数量较多、使用频度较高专用寄存器各自只用于特定目的,10,IA-32常用寄存器,8个32位通用寄存器6个16位段寄存器1个32位标志寄存器1个32位指令指针,11,1.通用寄存器,处理器最常使用的整数通用寄存器可用于保存整数数据、地址等 8个32位通用寄存器EAX,EBX,ECX,EDXESI,EDI,EBP,ESP8个16位通用寄存器AX,BX,CX,DXSI,DI,BP,SP8个8位通用寄存器AH,BH,CH,DHAL,BL,CL,DL,既是一个整体又可独立使用,12,通用寄存器的名称,13,2.标志寄存器,标志(F
5、lag)反映指令执行结果或控制指令执行形式用一个或多个二进制位表示一种标志用0和1的不同组合表达标志的不同状态8086支持16位标志寄存器FLAGSIA-32处理器形成32位EFLAGS标志寄存器状态标志:记录指令执行结果的辅助信息控制标志:方向标志DF,仅用于串操作指令系统标志:控制操作系统或核心管理程序的操作方式,示意图,14,标志寄存器EFLAGS,返回,15,处理器最基本的标志:状态标志,用来记录指令执行结果的辅助信息加减运算和逻辑运算指令主要设置它们其他有些指令的执行也会相应地设置它们处理器主要使用其中5个构成各种条件,分支指令判断这些条件实现程序分支,16,3.指令指针寄存器EIP
6、,保存将要执行的指令在主存的存储器地址EIP是专用寄存器顺序执行时自动增量(加上该指令的字节数),指向下一条指令分支、调用等操作时执行控制转移指令修改,引起程序转移到指定的指令执行出现中断或异常时被处理器赋值而相应改变,17,4.段寄存器,段(Segment)是用于安排相关代码或数据的一个主存区域段寄存器表明某个段在主存中的位置6个16位段寄存器:CS DS SS ES FS GS应用程序主要涉及3类段代码段(Code Segment)存放程序中指令代码 数据段(Data Segment)存放当前运行程序所用数据堆栈段(Stack Segment)指明程序使用的堆栈区域,18,1.2.3 存储
7、器组织,主存储器容量很大,被划分成许多存储单元每个存储单元被编排一个号码即存储单元地址称为存储器地址(Memory Address)每个存储单元以字节为基本存储单位即字节编址(Byte Addressable)一个字节(Byte)等于8个二进制位(Bit)二进制位是计算机存储信息的最小单位16位(2个字节)构成一个字(Word)32位(4个字节)构成一个双字(Double Word),示意图,19,数据的位格式,返回,20,1.存储模型,物理存储器以字节为基本存储单位每个存储单元被分配一个唯一的地址这个地址就是物理地址物理地址空间从0开始顺序编排,直到处理器支持的最大存储单元8086处理器支持
8、1MB存储器:00000HFFFFFHIA-32处理器支持4GB存储器:00000000HFFFFFFFFH操作系统利用存储管理单元进行存储管理,程序并不直接寻址物理存储器IA-32处理器提供3种存储模型,用于程序访问存储器,示意图,21,存储器地址空间,返回,22,IA-32处理器的存储模型,(1)平展存储模型(Flat Memory Model)存储器是一个连续的地址空间:线性地址空间IA-32处理器支持4GB容量线性地址空间(2)段式存储模型(Segmented Memory Model)存储器由一组独立的地址空间:段(Segment)每个段都可以达到4GB容量在处理器内部,所有的段都被
9、映射到线性地址空间(3)实地址存储模型(Real-address Memory Model)8086处理器的存储模型段式存储模型的特例线性地址空间最大为1MB容量,段最大为64KB,23,2.工作方式,(1)保护方式(Protected Mode)IA-32处理器固有的工作状态具有强大的段页式存储管理和特权与保护能力使用全部32条地址总线,可寻址4GB物理存储器使用平展或段式存储模型利用虚拟8086方式支持实地址8086软件(2)实地址方式(Real-address Mode)可以进行32位处理的快速8086只能寻址1MB物理存储器空间,每个段不超过64KB可以使用32位寄存器、32位操作数和
10、32位寻址方式只能支持实地址存储模型(3)系统管理方式(System Management Mode)实现供节能和系统安全管理,24,3.逻辑地址(Logical Address),在处理器内部、程序员编程时采用的地址逻辑地址段基地址偏移地址段基地址在主存中的起始地址偏移地址距离段基地址的位移量某个存储单元可以有多个逻辑地址,但只有一个唯一的物理地址,示意图,25,逻辑地址与物理地址,返回,26,基本段的逻辑地址,代码段(Code Segment)段基地址:代码段寄存器CS指示偏移地址:指令指针寄存器EIP保存数据段(Data Segment)段基地址:数据段寄存器DS指示有时也用附加段寄存器
11、ES,段寄存器FS和GS指示偏移地址:各种存储器寻址方式计算出来堆栈段(Stack Segment)段基地址:堆栈段寄存器SS指示偏移地址:堆栈指针寄存器ESP保存,27,4.段选择器,16位段寄存器保存16位段选择器段选择器指向64位段描述符(Descriptor)段描述符包括段基地址平展存储模型:指向地址0位置段式存储模型:指向线性地址空间不同的段实地址存储模型:保存段基地址的高16位,28,平展模型,平展存储模型是分段存储模型的一种特例 所有的段都有相同的段基地址(基地址为0),都重合于同一个线性地址空间 IA-32微处理器上运行的应用程序,广泛采用平展存储模型。,29,分页机制,不采用
12、分页管理机制,线性地址就是对应的物理地址空间 采用了分页管理机制,则要将线性空间地址映射到物理地址 当微处理器既采用段式存储管理,又采用页式存储管理就是段页式存储管理方式,30,分页,线性地址空间,物理地址空间,线性地址,页目录,页表,页,+,31,存储器模型与工作模式,32,5.Win32的虚拟地址分配,应用程序起始地址,33,1.2.4 程序设计语言,机器语言(Machine Language)底层的计算机语言,对应机器指令形成目标(代码)程序汇编语言(Assembly Language)将机器指令用助记符号代替而形成的一种语言本质上是机器语言需要汇编程序“汇编”(翻译)高级语言(High
13、 Level Language)面向问题的程序设计语言需要“编译”或“解释”后执行,指令是处理器的母语,mov eax,100add eax,256,34,Instructions:Language of the Machine,To command a computers hardware,you must speak its language.The words of a machines language are called instructions,and its vocabulary is called an instruction set.为了控制计算机硬件,必须使用它的语言。机
14、器语言的单词称为指令,它的词汇表称为指令集。“Computer Organization&Design-The Hardware/Software Interface(2nd Edition)”by John L.Hennessy and David A.Patterson Morgan Kaufmann Publishers,Inc.1998,返回,35,汇编语言和高级语言的比较,汇编语言与处理器密切相关,可移植性较差高级语言与具体计算机无关,便于移植汇编语言功能有限、涉及硬件细节,编写繁琐困难高级语言功能强大,语法自然,容易掌握和应用汇编语言的优势:直接、有效地控制硬件,容易产生运行速度快
15、、指令序列短小的高效率目标程序高级语言不易直接控制计算机的各种操作,编译程序产生的目标程序往往比较庞大,混合编程、取长补短,36,汇编语言的主要应用场合,程序要具有较快的执行时间,或者只能占用较小的存储容量程序与计算机硬件密切相关,程序要直接、有效地控制硬件大型软件需要提高性能、优化处理的部分没有合适的高级语言、或只能采用汇编语言的时候分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等,37,1.2.5 软件系统,Windows操作系统平台MASM 6.15汇编程序,38,1.操作系统(Operating System),操作系统管理着系统的软硬件资源为用户提供使用机器
16、的交互界面为程序员使用资源提供可供调用的驱动程序为其他程序构建稳定的运行平台32位控制台环境%SystemRoot%system32cmd.exe16位模拟DOS环境%SystemRoot%,32位控制台环境和16位模拟DOS环境两种基本功能和界面一致,但本质不同,39,2.汇编程序(Assembler),将汇编语言源程序转换为机器代码微软宏汇编程序MASMMASM 6.11是最后一个独立发行的MASM软件包 MASM 6.15来自Visual C+6.0,支持到Pentium 4的SSE2指令系统Visual C+.NET 2005提供支持SSE3指令的MASM 8.0支持64位指令的ML6
17、4.EXE程序,汇编语言程序与汇编程序是两个不同的概念,40,3.文件路径,目录(Directory):管理磁盘上文件的文件夹路径(Path):分区:根目录子目录文件名绝对路径:文件的完整路径d:masmprogseg0101.asm相对路径:相对当前目录的路径progseg0101.asm.binml.exe转换分区d:进入当前目录(Current Directory)cd masm,41,4.内部命令和外部命令,内部命令:32位控制台或DOS环境本身具有的、直接支持的命令,即驻留主存的命令使用方法:命令关键字 参数选项外部命令:与其他可执行文件一样,以文件形式保存在磁盘上的命令执行方法:路
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言基础 汇编语言 基础 PPT 课件
链接地址:https://www.31ppt.com/p-5585135.html