欢迎来到天天文库
浏览记录
ID:27282602
大小:1.37 MB
页数:79页
时间:2018-11-30
《《汇编语言基础》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章汇编语言基础1.1英特尔80x86处理器1.2个人计算机系统1.3汇编语言程序格式第1章汇编语言基础了解软硬件开发环境熟悉通用寄存器和存储器组织掌握汇编语言的语句格式、程序框架和开发方法Intel80861.1英特尔80x86处理器8038680486奔腾奔腾II奔腾4802868086奔腾III酷睿多核系列4004IA-32处理器16位80x86处理器奔腾多核系列Intel64处理器31.1.116位80x86处理器16位结构处理器8086/8088指令系统提供16位基本指令集80186/80188增加若干条实用指令808
2、6的工作方式是实方式(RealMode)80286增加保护方式(ProtectedMode)80286引入了系统指令为操作系统等核心程序提供处理器控制功能指令系统、指令集(InstructionSet)41.1.2IA-32处理器80386引入英特尔32位指令集结构ISA兼容原16位80286指令系统全面升级为32位提供虚拟8086工作方式(Virtual8086Mode)80486集成浮点处理单元支持浮点指令Pentium系列陆续增加若干整数指令、完善浮点指令增加一系列多媒体指令(SIMD指令)IA-32(IntelArchit
3、ecture-32)51.1.3Intel64处理器引入64位英特尔指令集结构兼容32位指令系统新增64位工作方式继续丰富多媒体指令处理器集成多核(Multi-core)技术处理器进入多核时代Manycore61.2个人计算机系统硬件(Hardware):物理设备软件(Software):程序和文档运算器控制器寄存器组主存储器总线输入输出接口电路外部设备软件微处理器微型计算机微型计算机系统71.2.1硬件组成I/O接口主存储器系统总线CPU寄存器控制器运算器辅助存储器输入设备输出设备汇编语言程序员将硬件抽象为:寄存器、存储器地址和
4、输入输出地址81.2.2寄存器(Register)处理器内部的高速存储单元用于暂时存放程序执行过程中的代码和数据透明寄存器对应用人员不可见、不能编程直接控制可编程(Programmable)寄存器具有引用名称、供编程使用通用寄存器(General-PurposeRegister)具有多种用途数量较多、使用频度较高专用寄存器各自只用于特定目的9IA-32常用寄存器8个32位通用寄存器6个16位段寄存器1个32位标志寄存器1个32位指令指针101.通用寄存器处理器最常使用的整数通用寄存器可用于保存整数数据、地址等8个32位通用寄存器E
5、AX,EBX,ECX,EDXESI,EDI,EBP,ESP8个16位通用寄存器AX,BX,CX,DXSI,DI,BP,SP8个8位通用寄存器AH,BH,CH,DHAL,BL,CL,DL31871615AHAL0AXEAX既是一个整体又可独立使用11通用寄存器的名称EAXAccumulator累加器EBXBase基址寄存器ECXCounter计数器EDXData数据寄存器ESISourceIndex源变址寄存器EDIDestinationIndex目的变址寄存器EBPBasePointer基址指针ESPStackPointer堆栈指
6、针122.标志寄存器标志(Flag)反映指令执行结果或控制指令执行形式用一个或多个二进制位表示一种标志用0和1的不同组合表达标志的不同状态8086支持16位标志寄存器FLAGSIA-32处理器形成32位EFLAGS标志寄存器状态标志:记录指令执行结果的辅助信息控制标志:方向标志DF,仅用于串操作指令系统标志:控制操作系统或核心管理程序的操作方式示意图13标志寄存器EFLAGS返回14处理器最基本的标志:状态标志用来记录指令执行结果的辅助信息加减运算和逻辑运算指令主要设置它们其他有些指令的执行也会相应地设置它们处理器主要使用其中5个
7、构成各种条件,分支指令判断这些条件实现程序分支8086的标志OF111512DF10IF9TF8SF7ZF605AF403PF211CF0153.指令指针寄存器EIP保存将要执行的指令在主存的存储器地址EIP是专用寄存器顺序执行时自动增量(加上该指令的字节数),指向下一条指令分支、调用等操作时执行控制转移指令修改,引起程序转移到指定的指令执行出现中断或异常时被处理器赋值而相应改变311615IP0EIP164.段寄存器段(Segment)是用于安排相关代码或数据的一个主存区域段寄存器表明某个段在主存中的位置6个16位段寄存器:CS
8、DSSSESFSGS应用程序主要涉及3类段代码段(CodeSegment)存放程序中指令代码数据段(DataSegment)存放当前运行程序所用数据堆栈段(StackSegment)指明程序使用的堆栈区域主存空间指令段数据段堆栈段程序171.2.3
此文档下载收益归作者所有