(07)80486的三种工作方式及转换2.2.3
- 格式:ppt
- 大小:73.50 KB
- 文档页数:6
教学目标介绍80486的寻址方式及指令系统。
第三章80486微处理器指令系统目标和基本要求学习要求通过本章的学习,要求熟悉各种寻址方式的使用场合以及常用指令的使用方法。
第三章80486微处理器指令系统第一节80486微处理器寻址方式讲授内容第二节80486微处理器指令系统前言1.通知CPU执行某种操作的“命令”,CPU全部指令的集合,称为指令系统第一节80486微处理器的寻址方式1. 指令3+目标指令(机器指令):用一串0,1代码书写注意:硬件只能识别,存储,运行目标指令+符号指令:用规定的助记符,规定的书写格式书写的指令2. 指令的书写格式80486符号指令与机器指令对照表操作80486符号指令80486机器指令1234H→AX MOV AX, 1234H B8 34 12 AX+BX→AX ADD AX,BX 03C34AX+BX→AXADD AX, BX 03 C3 CX-DX→CX SUB CX, DX 2B CA 返回调用程序RET C3MOV: MOVE传送ADD:加SUB:减RET:RETURN 返回指令的组成:操作码+ 操作数操作码——告诉计算机要执行的操作是什么,3.指令的组成第一节80486微处理器的寻址方式5如:加、减、逻辑与等。
操作数——执行操作过程所要操作的数,如加运算的两个加数。
4.目标程序的生成汇编可执行的机器指令CPU只能识别,存储,运行目标指令,而用机器指令编程非常困难。
于是早期的专家们发明了符号指令,再经过软件把符号指令→机器指令。
图示如下:第一节80486微处理器的寻址方式6源程序编辑、编译、链接程序(目标程序)486指令长度(机器指令长度)为1~16字节规定:多字节指令占用连续的内存单元,存放指令第一字节的内存地址,称为“指令地址”。
5.指令长度先写操作码,再写操作数。
多字节操作数连续存放。
存放规律: 低位字节存放在低地址单元,高位字节存放在相邻的高地址单元7如:12345H单元中有一条指令MOV AX,6789H67H89H B8H 12345H:操作码操作数6789HMOV AX,6789H如:NEXT: ADD AX , BX ;AX+BX → AXINC SI ;SI+1 → SI 8INC SI;SI+1→SI标号:以字母开头,后跟字母,数字,下划线,长度≤31字符标号又称符号地址,代表该指令的逻辑地址。
Intel 80386 微处理器的存储器管理一、存储器的管理存储器的管理是一种硬件机制,微处理器在总线地址上对物理存储器进行寻址。
但是,为了给程序提供比物理存储器容量更大的空间,就引入了虚拟存储器的概念,它在外存(比如磁盘)的支持来下实现,通常所说的虚拟地址称为逻辑地址。
对80386来说,既有段的管理又有页的管理。
对段和页的管理属于操作系统的职责,80386从硬件上提供管理机制。
二、Intel 80386 微处理器的三种工作方式三种工作方式:实地址方式,虚地址保护方式,虚拟8086方式。
1. 实地址方式80386在硬件复位后处于该模式下,只能使用32位地址总线的低20位地址,寻址空间为1MB。
此时他就是一个8086/8088微处理器,不同的是它不仅可以运行8086/8088的全部指令,还可以运行32位的运算类指令。
系统初始化区在FFFFFFF0H-FFFFFFFFH存储区内。
设置此方式是为了与8086兼容,也可从实地址方式转变到保护虚地址方式。
物理地址由8386芯片地址引线送出的低的20位地址码,经过存储器译码后选择一个存储单元进行读写,物理地址可用5位的十六进制来表示20位的地址。
储器地址分段是把1MB 的存储器空间分成若干段,每段的容量最大为64KB,每个段首地址的高16位二进制代码就是该段的段号(称段基地址)。
存储器采用分段管理后,段地址存放在段寄存器CS、DS、SS、ES中,对段寄存器设置不同的值来使微处理器的段寄存器指向存储器中不同的段。
偏移地址是相对于某段首地址的段内偏移量。
物理地址的形成,把段地址左移4 位得到段基地址,再加上偏移地址值就形成了20 位的物理地址。
计算表示方式如下:段地址×10H+偏移地址=物理地址80386在实地址方式下的地址转换如图一:2.虚地址保护方式当Intel 80386/486 的控制寄存器CR0 的最低位为PE(Protection Enable)保护模式允许位,用来启动CPU进入虚地址保护方式。
80486基本集指令1.传送类指令2.算术运算指令3.转移和调用指令4.逻辑运算和移位指令5.串操作指令6.处理机控制指令1.1通用传送指令(1)数据传送指令格式:MOV 目标操作数,源操作数作用:把源操作数传送到目标寄存器或目标单元,源操作数不变,不影响状态标志。
(2)符号扩展传送指令格式:MOVSX 目标寄存器,源操作数作用:将源操作数的符号位向高位扩展使其与目标字长相同,然后再传送到目标寄存器,而源操作数不变。
(3)零扩展传送指令格式:MOVZX 目标寄存器,源操作数作用:将源操作数高位用零补足16位或32位,再传送到目标寄存器。
(4)偏移地址传送指令格式:LEA 目标寄存器,源操作数作用:将内存单元的偏移地址(不是指该单元的内容)传送到目标寄存器中。
目标为16或32位寄存器,源操作数为内存操作数(5)指针传送指令格式:操作码助记符目标寄存器,源操作数作用:操作码助记符有LDS、LES、LFS、LGS、LSS,其后两位字母代表段寄存器(6)标志寄存器传送指令格式:LAHFSAHF作用:LAHF将标志寄存器低8位传送到AH寄存器中,SAHF将AH寄存器的内容传送到标志寄存器低8位。
(7)交换指令格式:XCHG 目标操作数,源操作数作用:完成源、目标操作数互换。
源、目标操作数是等长的寄存器操作数、内存操作数。
不能同为内存操作数。
(8)字节交换指令格式:BSWAP 32寄存器作用:将32位通用寄存器的31位~24位与7~0位交换,23位~16位与15~8位交换(9)查表指令格式:XLAT 表头变量名作用:取出DS:[BX+AL]中的一个字节给AL,或者取出DS:[EBX+AL]中的一个字节给AL1.2堆栈操作指令(1)进栈指令格式:PUSH 源操作数作用:执行时,首先调整堆栈指针,然后把源操作数压栈(2)出栈指令格式:POP 目标操作数作用:先从栈顶弹出2个或4个字节送目标操作数,然后调整堆栈指针(3)16位标志寄存器进栈/出栈指令格式:PUSHFPOPF作用:执行PUSHF时,首先SP-2→SP,然后标志寄存器低16位→SS:[SP]的两个单元。