★斗 第三章寻址方式与指令系统散 3.1概述 32寻址方式 33数据传送指令 34算术运算指令 3.5逻辑运算指令 36串操作指令 3.7程序控制指令
1 第三章 寻址方式与指令系统 3.1 概述 3.2 寻址方式 3.3 数据传送指令 3.4 算术运算指令 3.5 逻辑运算指令 3.6 串操作指令 3.7 程序控制指令
1.指令 指令是微处理器执行某种操作的命令,微处理器全部指 令的集合称为指令系统(指令集) 指令有两种书写格式:机器指令和符号指令。 G机器指令指令的二进制数描述 硬件只能识别机器指令,用机器指令书写的程序可以直接运 行 G符号指令用规定的助记符和规定的书写格式书 写的指令 与机器指令一一对应,需要翻译成机器指令才能运行 00000000000 MOVAL
2 3.1 概述 •指令是微处理器执行某种操作的命令,微处理器全部指 令的集合称为指令系统(指令集)。 •指令有两种书写格式:机器指令和符号指令。 机器指令——指令的二进制数描述 硬件只能识别机器指令,用机器指令书写的程序可以直接运 行 符号指令——用规定的助记符和规定的书写格式书 写的指令 与机器指令一一对应,需要翻译成机器指令才能运行 10110000 00000001 MOV AL, 1 1. 指令
2.程序 程序是为解决某一问题而编写在一起的指令序列 机器语言程序:由机器指令书写的程序 汇编语言程序:由符号指令书写的程序 高级语言程序:由高级语言书写的程序,高级语言的基础 是语句,而不是处理器的指令系统 汇编语言程序和高级语言程序必须先翻译成机器语言程序才能执 行。这一翻译过程对汇编语言程序叫做汇编( assemble),对高 级语言程序叫做编译( compilation)或解释( interpretation)
3 2. 程序 程序是为解决某一问题而编写在一起的指令序列 机器语言程序:由机器指令书写的程序 汇编语言程序:由符号指令书写的程序 高级语言程序:由高级语言书写的程序,高级语言的基础 是语句,而不是处理器的指令系统 汇编语言程序和高级语言程序必须先翻译成机器语言程序才能执 行。这一翻译过程对汇编语言程序叫做汇编(assemble),对高 级语言程序叫做编译(compilation)或解释(interpretation)
★斗 符号指令的书写格式为: 标号:]操作码助记符操作数助记符[;注释 标号代表该指令在存储器中的地址,为分支、循环提 供转移目标。可选 操作码助记符如ADD,MOV等,指出指令要实现的功 能 ·操作数是指令操作的对象。当一条指令需要一个以上 的操作数时,操作数间用逗号分隔,逗号前为目标操 作数,逗号后为源操作数。 注释可增强可读性
4 •符号指令的书写格式为: [标号:] 操作码助记符 操作数助记符 [;注释] •标号代表该指令在存储器中的地址,为分支、循环提 供转移目标。可选 •操作码助记符如ADD, MOV等,指出指令要实现的功 能 •操作数是指令操作的对象。当一条指令需要一个以上 的操作数时,操作数间用逗号分隔,逗号前为目标操 作数,逗号后为源操作数。 •注释可增强可读性
★斗 3.X86系列微处理器指令系统的发展 保护模式 控 指 指 统 强 令令 基本指令集>系(增(基本指令集集集 实模式 8086/8088 116条指令 Pentium 280余条指令
5 3. X86系列微处理器指令系统的发展 基本指令集 8086/8088 116条指令 增 基本指令集 强 指 令 系 集 统 控 制 指 令 集 保护模式 实模式 Pentium 280余条指令
★斗 寻址方式:寻找指令中操作数地址的方式。 操作数有三种可能的存放方式: °直接包含在指令中 立即数 立即寻址 包含在某个寄存器中 寄存器操作数 寄存器寻址 在内存中 存储器操作数(内存操作数) 存储器寻址
6 3.2 寻址方式 寻址方式:寻找指令中操作数地址的方式。 操作数有三种可能的存放方式: •直接包含在指令中 立即数 立即寻址 •包含在某个寄存器中 寄存器操作数 寄存器寻址 •在内存中 存储器操作数(内存操作数) 存储器寻址
1.立即寻址 操作数作为立即数直接存在指令中,可为字节、字 双字 MOVEAX,12345678H 低地址 操作码 78H EAX 12H 34H 56H 78H 56HDS段 34H 12H 高地址
7 1. 立即寻址 操作数作为立即数直接存在指令中,可为字节、字 、双字 MOV EAX, 12345678H 低地址 高地址 DS段 操作码 78H 56H 34H 12H EAX 12H 34H 56H 78H
2.寄存器寻址 操作数包含在指令规定的8位、16位、32位寄存器 中 MOV ECX. EDX ECX EDX 12H34H56H78H 12H34H56H78H 寄存器寻址由于无需从存储器中取操作数,故执行 速度快
8 2. 寄存器寻址 操作数包含在指令规定的8位、16位、32位寄存器 中 MOV ECX, EDX 12H 34H 56H 78H ECX 12H 34H 56H 78H EDX 寄存器寻址由于无需从存储器中取操作数,故执行 速度快
3.存储器寻址(内存寻址) X86系列处理器对内存采用分段式管理,程序员在指令中使 用的是逻辑地址,逻辑地址由两部分组成存储单元所在 段的基地址:段内偏移地址(偏移量) 段的基地址一般由操作系统将程序装入内存时设置,程序员 在编程时主要使用段内偏移地址,段内偏移地址也称为有效 把地址(EA) I MOV ES: 1300H), AL ES:称为段超越前缀(可选),指示处理器访问哪个逻辑段 3000H为段内偏移地址(有效地址)
9 X86系列处理器对内存采用分段式管理,程序员在指令中使 用的是逻辑地址,逻辑地址由两部分组成——存储单元所在 段的基地址:段内偏移地址(偏移量) 段的基地址一般由操作系统将程序装入内存时设置,程序员 在编程时主要使用段内偏移地址,段内偏移地址也称为有效 地址(EA) MOV ES:[3000H], AL ES:称为段超越前缀(可选),指示处理器访问哪个逻辑段 3000H为段内偏移地址(有效地址) 3. 存储器寻址(内存寻址)
段内偏移地址(有效地址)可以由如下四个部分组成 ★半 (称为偏移地址四元素) 基址寄存器内容 变址寄存器内容 比例因子 位移量 EA=基址寄存器+变址寄存器×比例因子+位移量 16位寻址 32位寻址: 基址寄存器:BX,BP 基址寄存器:任何32位通用寄存器 变址寄存器:SI,DI 变址寄存器:除ESP外的任何 比例因子:0,1 32位通用寄存器 位移量:0,8,16位 比例因子:1,2,4,8 位移量:0,8,32位
10 段内偏移地址(有效地址)可以由如下四个部分组成 (称为偏移地址四元素): •基址寄存器内容 •变址寄存器内容 •比例因子 •位移量 EA=基址寄存器+变址寄存器比例因子+位移量 16位寻址: 基址寄存器:BX,BP 变址寄存器:SI,DI 比例因子:0,1 位移量:0,8,16位 32位寻址: 基址寄存器:任何32位通用寄存器 变址寄存器:除ESP外的任何 32位通用寄存器 比例因子:1,2,4,8 位移量:0,8,32位