第3章 80X86指令系统PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/7/16
j.g.mao@263.net
8
注:
⑶对16位偏移量,在指令代码中或存储器存放中, 低字节在前;高字节在后。
⑷大部分指令的操作码为一个字节。也有的指令 为一个字节,不仅包括操作码,还隐含寄存器, 形成单字节指令。这类指令字节数最少,执行 速度最快,使用也最频繁。
2020/7/16
《80X86微型计算机原理及应用》 ——易仲芳 电子工业出版社 1995
《宏汇编语言程序设计及应用》 ——傅德胜 东南大学出版社 1999
《汇编语言程序设计》 ——奚抗生 航空工业出版社 1994
《 80386/486系统编程实践》 ——吕晓庆 浙江大学出版社 1993
《IBM-PC汇编语言程序设计》 ——沈美明 温冬婵 清华大学出版社 1991
2020/7/16
j.g.mao@263.net
4
§3.1 8X86/Pentium指令格式及寻址方式
3.1.1 80X86/Pentium指令格式 3.1.2 指令系统的寻址方式
◆寻址方式—寻找操作数的方法 ◆有效地址—EA 段内偏移量 ◆寻址方式举例 ◆转移地址寻址
2020/7/16
j.g.mao@263.net
2020/7/16
j.g.mao@263.net
3
概述
指令:由操作码(OP)和操作数构成。 指令系统:CPU所能执行的各种指令的集合。
操作码:规定了指令的性质。
如数据传送,加减乘除等。
操作数:参加运算的数或存放数据的地址单元。
参加运算的数分为8位、16位以及32位,存放在寄存器 或存贮器中。 存放数据的地址单元需要20位(24位或32位)。 因此,指令用什么方式来寻找操作数,是计算机设计 中一个重要问题,影响到CPU的运行速度和效率。
3.操作数存放在内存中:操作数部分指明此操作 数的存放地址(操作数在存储器中)。
2020/7/16
j.g.mao@263.net
10
二.有效地址——EA 段内偏移量
由于逻辑地址由段基值和段内偏移量 构成(8086、8088CPU),或由段选 择子和偏移量构成(80286以上的 CPU),我们把偏移量也称为有效地 址,用EA表示。
2020/7/16
j.g.mao@263.net
14
以AL、AX及EAX清零为例 即AL ← 0=00H=00000000B AX ←0=0000H=0000000000000000B EAX ←0=00000000H=0……0B
索引
❖ 概述 ❖ 3.1 8X86/Pentium指令格式及寻址方式 ❖ 3.2 8086/8088指令系统 ❖ 3.3 80X86指令系统(略)
❖ 注:重点掌握 3.1节的寻址方式和 3.2的指令系统 3.1节的指令格式一般了解
概述
1
点击输入简要文字内容,文字内容需概括精炼,不用多余 的文字修饰,言简意赅的说明分项内容……
比例因子:32位(386以上CPU)寻址方式中特有的。
比例因子 为1,2,4,8。
位移量:8位或16位或32位的立即数。
2020/7/16
j.g.mao@263.net
12
例:位移量TAB=3000H,
EBX=1000H, ECX=20H, 则TAB[EBX+ECX*2+8]的有效地址EA? 解: EA=EBX+ECX*2+8+TAB
j.g.maBiblioteka Baidu@263.net
9
3.1.2 指令系统的寻址方式
一.寻址方式——寻找操作数的方法
操作数的存放位置有三种可能:
1.操作数包括在指令中:指令中操作数部分就是 操作数本身。(操作数存放在代码段中)此时, 操作数也称为立即数。
2.操作数包含在CPU的某个寄存器中:某个寄存 器的编码指明操作数(操作数在CPU中)。
2020/7/16
j.g.mao@263.net
6
3.1.1 指令格式
3 Mod r/m 和s-i-b 寻址方式字段:规定寄存器 /存储器操作数的寻址方式(1+1字节)。
4 disp 位移量字段:段内位移量的大小 (0,1,2,4字节组成)。 5 data 立即数字段:指明立即数的大小。可为0,
1,2,4字节。
2020/7/16
j.g.mao@263.net
7
注:
⑴一条指令中可以包含一个操作数,也可有一个以上的操 作数,操作数越长,字节越多,占用空间越大,执行时 间越长。
⑵只涉及一个操作数的指令称为单操作数指令。其操作数 可由本身提供,也可由指令隐含指出; 对二个操作数的双操作数指令,至少有一个操作数必须 由寄存器指出(因为80X86的M及I/O空间较大,直接指 出一个内存单元或一个I/O端口需要较多的位数,而用 寄存器编号,则用很少的位数即可)。
5
3.1.1 指令格式
80X86/Pentium系列CPU采用变字节的指令格式,
由1~6个字节构成一条指令(如图3-1)
一条指令可分为6个字段: 字段1 是附加字段,字段2-6是基本字段。 1 Prefix 前缀字段:定义或修改指令的属性。
(1-4字节)如段超越、重复操作、总线锁定等。
2 opcode 操作码字段:规定指令的性质,指明指令 的操作。(1-2字节)这是必不可少的字段。
2020/7/16
j.g.mao@263.net
11
构成EA的四个地址分量 :
EA=(基址寄存器)+[(变址寄存器)×比例因子]+位移量 构成EA的四个地址分量:
基址: 16位CPU :BX、BP的内容;
32位COU:任一个通用寄存器的内容。
变址: 16位CPU :SI、DI的内容;
32位CPU:任一个通用寄存器(ESP除外)的内容。
2
点击输入简要文字内容,文字内容需概括精炼,不用多余 的文字修饰,言简意赅的说明分项内容……
3
点击输入简要文字内容,文字内容需概括精炼,不用多余 的文字修饰,言简意赅的说明分项内容……
参考教材
《从8086到pentiumⅢ微型计算机及接口技术》 ——马维华 科学技术出版社 2000
《80X86/pentium 》微型计算机原理及应用》 ——吴 宁 电子工业出版社 2000
=1000H+20H*2+8+3000H=4048H
2020/7/16
j.g.mao@263.net
13
三.寻址方式分析
1 立即寻址 2 寄存器寻址 3 存储器寻址
①直接寻址
②寄存器间址
③基址寻址
④变址寻址
⑤基址加变址
⑥带位移量的基址加变址
对32位寻址方式还有:
⑦比例变址 ⑧基址加比例变址 ⑨带位移量的基址加比例变址