汇编语言基础课件

上传人:F****n 文档编号:88124463 上传时间:2019-04-19 格式:PPT 页数:79 大小:1.17MB
返回 下载 相关 举报
汇编语言基础课件_第1页
第1页 / 共79页
汇编语言基础课件_第2页
第2页 / 共79页
汇编语言基础课件_第3页
第3页 / 共79页
汇编语言基础课件_第4页
第4页 / 共79页
汇编语言基础课件_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《汇编语言基础课件》由会员分享,可在线阅读,更多相关《汇编语言基础课件(79页珍藏版)》请在金锄头文库上搜索。

1、第1章 汇编语言基础,1.1 英特尔80x86处理器 1.2 个人计算机系统 1.3 汇编语言程序格式,第1章 汇编语言基础,了解软硬件开发环境 熟悉通用寄存器和存储器组织 掌握汇编语言的 语句格式、程序框架和开发方法,3,Intel 8086,1.1 英特尔80x86处理器,80386,80486,奔腾,奔腾II,奔腾4,80286,8086,奔腾III,酷睿多核系列,4004,IA-32处理器,16位80x86处理器,奔腾多核系列,Intel 64处理器,4,1.1.1 16位80x86处理器,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 Archite

3、cture-32),6,1.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),处理器内部的高速存储单元 用于暂时存放程序执行过程中的代码和数据 透明寄存器 对应用人员不可见、不能编程直接控制 可编程(Progr

4、ammable)寄存器 具有引用名称、供编程使用 通用寄存器(General-Purpose Register) 具有多种用途 数量较多、使用频度较高 专用寄存器 各自只用于特定目的,10,IA-32常用寄存器,8个32位通用寄存器 6个16位段寄存器 1个32位标志寄存器 1个32位指令指针,11,1. 通用寄存器,处理器最常使用的整数通用寄存器 可用于保存整数数据、地址等 8个32位通用寄存器 EAX,EBX,ECX,EDX ESI,EDI,EBP,ESP 8个16位通用寄存器 AX,BX,CX,DX SI,DI,BP,SP 8个8位通用寄存器 AH,BH,CH,DH AL,BL,CL,D

5、L,既是一个整体 又可独立使用,12,通用寄存器的名称,13,2. 标志寄存器,标志(Flag) 反映指令执行结果或控制指令执行形式 用一个或多个二进制位表示一种标志 用0和1的不同组合表达标志的不同状态 8086支持16位标志寄存器FLAGS IA-32处理器形成32位EFLAGS标志寄存器 状态标志:记录指令执行结果的辅助信息 控制标志:方向标志DF,仅用于串操作指令 系统标志:控制操作系统或核心管理程序的操作方式,示意图,14,标志寄存器EFLAGS,返回,15,处理器最基本的标志:状态标志,用来记录指令执行结果的辅助信息 加减运算和逻辑运算指令主要设置它们 其他有些指令的执行也会相应地

6、设置它们 处理器主要使用其中5个构成各种条件,分支指令判断这些条件实现程序分支,16,3. 指令指针寄存器EIP,保存将要执行的指令在主存的存储器地址 EIP是专用寄存器 顺序执行时自动增量(加上该指令的字节数),指向下一条指令 分支、调用等操作时执行控制转移指令修改,引起程序转移到指定的指令执行 出现中断或异常时被处理器赋值而相应改变,17,4. 段寄存器,段(Segment)是用于安排相关代码或数据的一个主存区域 段寄存器表明某个段在主存中的位置 6个16位段寄存器:CS DS SS ES FS GS 应用程序主要涉及3类段 代码段(Code Segment) 存放程序中指令代码 数据段(

7、Data Segment) 存放当前运行程序所用数据 堆栈段(Stack Segment) 指明程序使用的堆栈区域,18,1.2.3 存储器组织,主存储器容量很大,被划分成许多存储单元 每个存储单元被编排一个号码 即存储单元地址 称为存储器地址(Memory Address) 每个存储单元以字节为基本存储单位 即字节编址(Byte Addressable) 一个字节(Byte)等于8个二进制位(Bit) 二进制位是计算机存储信息的最小单位 16位(2个字节)构成一个字(Word) 32位(4个字节)构成一个双字(Double Word),示意图,19,数据的位格式,返回,20,1. 存储模型,

8、物理存储器以字节为基本存储单位 每个存储单元被分配一个唯一的地址 这个地址就是物理地址 物理地址空间从0开始顺序编排,直到处理器支持的最大存储单元 8086处理器支持1MB存储器:00000HFFFFFH IA-32处理器支持4GB存储器:00000000HFFFFFFFFH 操作系统利用存储管理单元进行存储管理,程序并不直接寻址物理存储器 IA-32处理器提供3种存储模型,用于程序访问存储器,示意图,21,存储器地址空间,返回,22,IA-32处理器的存储模型,(1)平展存储模型(Flat Memory Model) 存储器是一个连续的地址空间:线性地址空间 IA-32处理器支持4GB容量线

9、性地址空间 (2)段式存储模型(Segmented Memory Model) 存储器由一组独立的地址空间:段(Segment) 每个段都可以达到4GB容量 在处理器内部,所有的段都被映射到线性地址空间 (3)实地址存储模型(Real-address Memory Model) 8086处理器的存储模型 段式存储模型的特例 线性地址空间最大为1MB容量,段最大为64KB,23,2. 工作方式,(1)保护方式(Protected Mode) IA-32处理器固有的工作状态 具有强大的段页式存储管理和特权与保护能力 使用全部32条地址总线,可寻址4GB物理存储器 使用平展或段式存储模型 利用虚拟8

10、086方式支持实地址8086软件 (2)实地址方式(Real-address Mode) 可以进行32位处理的快速8086 只能寻址1MB物理存储器空间,每个段不超过64KB 可以使用32位寄存器、32位操作数和32位寻址方式 只能支持实地址存储模型 (3)系统管理方式(System Management Mode) 实现供节能和系统安全管理,24,3. 逻辑地址(Logical Address),在处理器内部、程序员编程时采用的地址 逻辑地址段基地址偏移地址 段基地址在主存中的起始地址 偏移地址距离段基地址的位移量 某个存储单元可以有多个逻辑地址,但只有一个唯一的物理地址,示意图,25,逻辑

11、地址与物理地址,返回,26,基本段的逻辑地址,代码段(Code Segment) 段基地址:代码段寄存器CS指示 偏移地址:指令指针寄存器EIP保存 数据段(Data Segment) 段基地址:数据段寄存器DS指示 有时也用附加段寄存器ES,段寄存器FS和GS指示 偏移地址:各种存储器寻址方式计算出来 堆栈段(Stack Segment) 段基地址:堆栈段寄存器SS指示 偏移地址:堆栈指针寄存器ESP保存,27,4. 段选择器,16位段寄存器保存16位段选择器 段选择器指向64位段描述符(Descriptor) 段描述符包括段基地址 平展存储模型:指向地址0位置 段式存储模型:指向线性地址空

12、间不同的段 实地址存储模型:保存段基地址的高16位,28,平展模型,平展存储模型是分段存储模型的一种特例 所有的段都有相同的段基地址(基地址为0),都重合于同一个线性地址空间 IA-32微处理器上运行的应用程序,广泛采用平展存储模型。,29,分页机制,不采用分页管理机制,线性地址就是对应的物理地址空间 采用了分页管理机制,则要将线性空间地址映射到物理地址 当微处理器既采用段式存储管理,又采用页式存储管理就是段页式存储管理方式,30,分页,线性地址空间,物理地址空间,线性地址,页目录,页表,页,+,31,存储器模型与工作模式,32,5. Win32的虚拟地址分配,应用程序起始地址,33,1.2.

13、4 程序设计语言,机器语言(Machine Language) 底层的计算机语言,对应机器指令 形成目标(代码)程序 汇编语言(Assembly Language) 将机器指令用助记符号代替而形成的一种语言 本质上是机器语言 需要汇编程序“汇编”(翻译) 高级语言(High Level Language) 面向问题的程序设计语言 需要“编译”或“解释”后执行,指令是处理器的母语,mov eax,100 add eax,256,34,Instructions: Language of the Machine,To command a computers hardware, you must sp

14、eak its language. The words of a machines language are called instructions, and its vocabulary is called an instruction set. 为了控制计算机硬件,必须使用它的语言。机器语言的单词称为指令,它的词汇表称为指令集。 “Computer Organization & Design - The Hardware/Software Interface ( 2nd Edition )” by John L. Hennessy and David A. Patterson Morgan

15、 Kaufmann Publishers, Inc. 1998,返回,35,汇编语言和高级语言的比较,汇编语言与处理器密切相关,可移植性较差 高级语言与具体计算机无关,便于移植 汇编语言功能有限、涉及硬件细节,编写繁琐困难 高级语言功能强大,语法自然,容易掌握和应用 汇编语言的优势:直接、有效地控制硬件,容易产生运行速度快、指令序列短小的高效率目标程序 高级语言不易直接控制计算机的各种操作,编译程序产生的目标程序往往比较庞大,混合编程、取长补短,36,汇编语言的主要应用场合,程序要具有较快的执行时间,或者只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效地控制硬件 大型软件需要

16、提高性能、优化处理的部分 没有合适的高级语言、或只能采用汇编语言的时候 分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等,37,1.2.5 软件系统,Windows操作系统平台 MASM 6.15汇编程序,38,1. 操作系统(Operating System),操作系统管理着系统的软硬件资源 为用户提供使用机器的交互界面 为程序员使用资源提供可供调用的驱动程序 为其他程序构建稳定的运行平台 32位控制台环境 %SystemRoot%system32cmd.exe 16位模拟DOS环境 %SystemRoot%,32位控制台环境和16位模拟DOS环境 两种基本功能和界面一致,但本质不同,39,2. 汇编程序(Assembler),将汇编语言源程序转换为机器代码 微软宏汇编程序MASM MASM 6.11是最后一个独立发行的MASM软件包 MASM 6.15来自Visual C+6.0,支持到Pentium 4的SSE2指令系统 V

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号