汇编程序语言设计课件

上传人:我*** 文档编号:143784608 上传时间:2020-09-02 格式:PPT 页数:35 大小:613KB
返回 下载 相关 举报
汇编程序语言设计课件_第1页
第1页 / 共35页
汇编程序语言设计课件_第2页
第2页 / 共35页
汇编程序语言设计课件_第3页
第3页 / 共35页
汇编程序语言设计课件_第4页
第4页 / 共35页
汇编程序语言设计课件_第5页
第5页 / 共35页
点击查看更多>>
资源描述

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

1、1,第十章 32位微处理器指令及编程基础,本章主要内容:,IA-32微处理器结构 IA-32微处理器工作方式 IA-32微处理器指令 IA-32汇编语言程序框架,Intel公司将80X86(包括奔腾系列)称为IA(Intel Architecture)-32结构微处理器。,2,10.1 IA-32处理器结构,一. 80286微处理器,1982年1月Intel公司推出了16位的80286,它比8086/8088速度更快。该芯片集成了13.5万个晶体管。,80286片内具有存储管理和保护机构。80286支持虚拟存储器,它使80286能可靠地支持多用户系统。,80286有两种工作方式,即实地址方式和

2、虚地址保护方式。在实地址方式下就是一个快速的8086,在虚地址保护方式下,80286可寻址16MB(224)物理地址,并能提供1000MB(230)的虚拟地址空间。,3,80286的功能结构,4,采用这样的结构可增加这些部件的并行操作,提高了吞吐率,加快了整个芯片的处理速度。,与8086微处理器相比,多了两个主要部件,共有四个功能部件。,总线部件BU(Bus Unit) 指令部件IU(Instruction Unit) 执行部件EU(Execute Unit) 地址部件AU (Address Unit),它是在8086的基础上,将其BIU拆分成BU和AU,而将EU分成EU和IU。,5,8028

3、6的寄存器结构,6,二. 80386微处理器,80386是Intel公司在1985年10月推出的与8086、80286相兼容的高性能的32位微处理器。,具有4GB(232)的物理地址空间和64TB的虚拟地址空间的存储器寻址能力 不仅具有分段存储管理方式,还增加了分页存储管理方式。 具有实地址方式、保护方式和虚拟8086方式三种工作方式。 比80286的时钟频率大大提高。,80386的主要特点:,7,8,80386的内部结构框图可以分为6个单元:总线接口单元BIU、指令预取单元IPU、指令译码单元IDU、执行单元EU、分段单元SU、分页单元PU。,80386的6个功能单元在工作时,既相互配合又相

4、互独立,因此可大大提高整个微处理器的工作效率。,在80386的存储器管理方式中,每一页大小为4KB,每一段可以是一页或多页,每一段最大为4GB,一个任务可以占用16381个段。,9,80386的寄存器结构,80386内部共有32个寄存器,它们被分为6类。这些寄存器包括了全部的16位微处理器8086和80286的寄存器,除段寄存器外,都扩展为32位。,1.通用寄存器,8个32位的通用寄存器,10,EAX,EBX,ECX和EDX既可作为32位寄存器使用,也可以作为16位或8位寄存器使用。作为16位和8位使用时,与8086中的命名(AX,BX,CX,DX,AH,AL,BH,BL等)一致。,ESP、E

5、BP、EDI和ESI也被扩展为32位,即是SP、BP、DI和SI的扩展。,2.指令指针和标志寄存器,指令指针EIP为32位,其低16位与8086同名为IP。,11,80386共有13个标志,其中有9个与8086相同,IOPL和NT与80286相同。新增了两个标志VM和RF。,12,3.段寄存器,80386共有6个16位的段寄存器,CS、SS、DS和ES与8086相同,并增加了两个数据段寄存器FS和GS,在80386中段基址和偏移量都是32位。段寄存器内容不直接产生段基址,而是作为段选择子指向一个段描述符缓冲寄存器,通过它可间接访问得到段的基地址、段长度以及段的属性。,4.段描述符缓冲寄存器,在

6、80386中每个段寄存器都有一个与之相联系的但程序员不可见的段描述符缓冲寄存器。其长度为64位。,当段寄存器中装入段选择子后,微处理器硬件自动将段描述符装入对应的段描述符缓冲寄存器中。,13,5.系统地址寄存器,包括两个48位的全局描述符表寄存器GDTR和中断描述符表寄存器,以及两个16位的局部描述表寄存器LDTR和任务状态段寄存器TR。,这四个寄存器都是用来实现对存储器的访问,其详细内容将在下一节中介绍。,6.控制寄存器,80386内部有3个32位的控制寄存器CR0、CR2和CR3。,14,四. 8048微处理器,1989年Intel公司推出了80486微处理器芯片,它是对80386的改进和

7、发展,是第二代32位微处理器产品。,80486内部集成了120万个晶体管,是80386的四倍多,工作频率有25MHz、33MHz、55MHz、66MHz、80MHz和100MHz等多种芯片。,80486内部集成了一个高性能的80386、一个80387和一个8KB的Cache,支持二级Cache(片外Cache)。其性能大大提高,对简单指令只需一个时钟周期即可完成。,15,主要特点,可以模拟多个80286处理器。,部分结构采用了RISC技术,使其可以在一个时钟内完成一条简单指令的执行。,采用突发总线方式与内存交换数据,大大加快了数据交换速度。,集Cache和FPU于一体,提高了微处理器的处理速度

8、。,16,80486内部包含了总线接口BIU、执行单元EU、指令部件、浮点运算单元PU、内存管理单元MMU、高速缓存Cache等多个功能单元。,功能结构,17,五.Pentium 微处理器,Pentium 微处理器特性,1.与80X86系列微处理器兼容,2.RISC型超标量结构 处理器包含有多个指令单元,多条指令流水线,使其运行速度成倍提高。,3.高性能浮点运算器 增强型浮点运算器(FPU)采用了超级流水线技术,使其浮点运算速度比486快35倍。,4.双重分离式高速缓存 将指令缓存与数据缓存分离,各自拥有独立的8KB高速缓存。,18,5. 64位数据总线 使用64位的数据总线,可以大幅度提高数

9、据传输速度。,6.分支指令预测 采用分支指令预测技术,大大提高流水线执行效率。,7.常用指令固化与微代码改进 把一些常用的指令改用硬件实现,而不使用微代码方式,使程序运行速度进一步提高。,8.系统管理方式 系统管理方式(SMM)包括电源管理以及为操作系统和正在运行的程序提供安全性。,19,10.2 IA-32处理器的工作方式,IA-32有两种主要的工作方式: 实地址方式 保护虚地址工作方式。,在保护虚地址方式下又增加了一种虚拟8086方式。,从80386以后的微处理器就提供了三种工作方式。,20,一、实地址方式,实地址方式是为了与8086兼容而设置的工作方式。,在具有32条地址线的IA-32微

10、处理器中,只有低20条地址线起作用,可寻址1MB的物理地址空间。,在实地址方式下,IA-32微处理器相当于一个快速的8086,虽然具有32位的数据线和数据寄存器,但无法发挥其全部功能。,实地址方式下微处理器不能实现多任务的处理。,21,二、保护虚地址方式,保护虚地址方式是IA-32微处理器的主要工作方式,它具有以下特点:,32条地址可寻址4GB的物理存储器空间; 支持虚拟存储器功能,每个任务运行可以有16K个段,每个段最大为4GB,一个任务最大可使用64TB虚拟地址空间; 程序运行分为4个特权等级,操作系统核心运行在最高特权级0,用户程序运行在最低特权级4;,22,三虚拟8086方式,为了在I

11、A-32系统上运行MS-DOS支持下的应用程序,微处理器可以工作在实地址方式,它与8086的工作方式完全兼容。,实地址方式的功能是十分有限。,寻址空间只有1MB;,不能实现多任务、多用户处理;,没有特权机制;,不能发挥IA-32微处理器的分页式存储管理机制 。,23,在虚拟8086方式下,IA-32微处理器总体上是工作在保护虚地址方式,支持多用户多任务操作系统。其中,有的任务工作在虚拟8086方式,运行DOS应用程序。,24,10.3 IA-32微处理器指令,一. 寻址方式,相对8086来说,80X86扩充了寄存器结构,采用了多种存储器管理方式 ,因此其寻址方式有了较大的增强。,1允许使用32

12、位的通用寄存器作寄存器间接寻址。,例如:MOVDX, EBX,2所有的32位通用寄存器均可用为基址寄存器使用;除ESP外的32位通用寄存器都能作为变址寄存器使用。,例如: MOVEDX, EDX+16 MOVAX, ADDREBP MOVEBX, ESIEAX,25,332位的变址寄存器可以乘上一个比例常数2、4和8,从而形成比例变址寻址方式、基址比例变址寻址方式和基址比例变址位移寻址方式。,例如: MOVEBX, ADDRESI*2 ;比例变址寻址方式 MOVEAX, EDI*4EDX ;基址比例变址寻址方式 MOVEBX, EDI*8EBP+10 ;基址比例变址位移寻址方式,二. 扩展的指

13、令,80X86系列微处理器对8086/8088的指令进行了扩展或新增了指令。,所有指令的操作数可以是8位、16位或32位。,下面列举其中部分新增的指令。,26,(一)数据传送指令,1MOVSX与MOVZX指令,格式:MOVSXDEST, SRC MOVZXDEST, SRC,MOVSX是有符号数扩展指令,MOVZX是无符号数扩展指令。,指令的目的操作数必须为16位或32位的通用寄存器,源操作数可以是8位或16位的寄存器或存储器操作数。,源操作数的长度要小于目的操作数。,MOVSX对目的操作数空出的位用符号位填充,MOVZX则对目的操作数空出的位用0填充。,27,例如: MOVSX ECX, A

14、X ;将字扩充到双字 MOVZX BX, AL ;将字节扩充到字,2. LFS、LGS与LSS指令,这是三条新增的指令,功能与LDS、LES类似。,LFS指令将32位的偏移量送目的寄存器,16位的段基值送FS。 其他两条指令类似,只是段寄存器变为GS和SS。,(二)算术运算指令,IMULDEST, SRC ;将(SRC)与(DEST)相乘,将结果放在DEST中 IMULDEST, SRC1, SRC2;将(SRC1)与(SRC2)相乘,将结果放在DEST中。,新增了两种乘法指令格式:,28,新增了两条扩展指令:,CWDE;将AX的符号位扩展到EAX的高16位,CDQ;将EAX的符号位扩展到ED

15、X的所有32位,(三)逻辑运算与移位指令,1. 对于移位指令,当移位次数大于1时,允许使用立即数作为操作数。,例如,SAL AX, 2,2. 新增了SHLD与SHRD指令,格式:SHLDDEST, SRC, OPTR,按OPTR给定的次数对DEST作左移,移出的位进入CF标志位,DEST空出的位由SRC的高位顺序移入。移位结束后SRC保持不变。,29,格式: SHRD DEST, SRC, OPTR,按OPTR给定的次数对DEST作右移,移出的位进入CF标志位,DEST空出的位由SRC的低位顺序移入。移位结束后,SRC保持不变。,1. PUSH允许立即数入栈,(四)堆栈操作指令,例如:PUSH

16、0ABCDH ;将16位立即数入栈 PUSH0ABCD0000H ;将32位立即数入栈,2. 新增两条PUSH指令,格式:PUSHA PUSHD,30,PUSHA指令将AX、BX、CX、DX、SP、BP、SI与DI一次性入栈。,PUSHD指令将EAX、EBX、ECX、EDX、ESP、EBP、ESI与EDI一次性入栈。,3. 新增两条POP指令,格式:POPA POPD,POPA指令从栈顶弹出8个字数据分别送入AX、BX、CX、DX、SP、BP、SI与DI。,POPD指令从栈顶弹出8个双字数据分别送入EAX、EBX、ECX、EDX、ESP、EBP、ESI与EDI。,31,10.4 IA-32汇编语言程序框架,IA-32汇编语言程序设计的方法同前面介绍的16位指令程序设计基本相同。但在结构上有三点主要差异。,在开始处增加了方式选择; 在段定义中有使用类型可选项; 可以同时使用6个段。,1方式选择,方式选择伪指令能确定微处理器工作模式和当前指令集。方式选择通过相应的伪指令实现。,32,.8086;选择8086/8088指令集。这是汇编程序默认的方式。

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

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

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