第三章 Pentium微处理器的指令系统 31概述 32 Pentium微处理器的寻址方式 33数据传送指令 34算术运算指令 35逻辑运算指令 36串操作指令 37程序控制指令 3.8保护模式的系统控制指令 39浮点运算指令 310MMX指令简介
第三章 Pentium微处理器的指令系统 3.1 概述 3.2 Pentium微处理器的寻址方式 3.3 数据传送指令 3.4 算术运算指令 3.5 逻辑运算指令 3.6 串操作指令 3.7 程序控制指令 3.8 保护模式的系统控制指令 3.9 浮点运算指令 3.10 MMX指令简介
3.1概述 指令是微处理器执行某种操作的命令,微处理器全 部指令的集合称为指令系统。 指令有两种书写格式:机器指令和符号指令。 符号指令是用规定的助记符和规定的书写格式书写 的指令。符号指令的书写格式为 操作码助记符操作数助记符 MOVAL. 1 1011000000000001
3.1 概述 •指令是微处理器执行某种操作的命令,微处理器全 部指令的集合称为指令系统。 •指令有两种书写格式:机器指令和符号指令。 •符号指令是用规定的助记符和规定的书写格式书写 的指令。符号指令的书写格式为: 操作码助记符 操作数助记符 MOV AL, 1 10110000 00000001
32 Pentium微处理器的寻址方式 寻址方式:寻找指令中操作数地址的方式。 操作数有三种可能的存放方式: °直接包含在指令中 立即数 立即数寻址 包含在某个寄存器中 寄存器操作数 寄存器寻址 在内存中 存储器操作数(内存操作数) 存储器寻址
3.2 Pentium微处理器的寻址方式 寻址方式:寻找指令中操作数地址的方式。 操作数有三种可能的存放方式: •直接包含在指令中 立即数 立即数寻址 •包含在某个寄存器中 寄存器操作数 寄存器寻址 •在内存中 存储器操作数(内存操作数) 存储器寻址
内存实际地址由两部分组成:存储单元所在段的基 地址/段内偏移地址(偏移量) MOV ES: 3000H, AL 段内偏移地址可以由如下四个部分组成(称为偏移 地址四元素): °基址寄存器内容 变址寄存器内容 比例因子 位移量
内存实际地址由两部分组成:存储单元所在段的基 地址/段内偏移地址(偏移量) MOV ES:[3000H], AL 段内偏移地址可以由如下四个部分组成(称为偏移 地址四元素): •基址寄存器内容 •变址寄存器内容 •比例因子 •位移量
由四元素组合形成的偏移地址称为有效地址EA: EA=基址+(变址x比例因子过+位移量 对于实模式(16位寻址) 基址寄存器:BX,BP 变址寄存器:SI,DI 比例因子:0,1 位移量:0,8,16位 对于保护模式(32位寻址): 基址寄存器:任何32位通用寄存器 变址寄存器:除ESP外的任何32位通用寄存器 比例因子:1,2,4,8 位移量:0,8,32位
由四元素组合形成的偏移地址称为有效地址EA: EA=基址+(变址比例因子)+位移量 对于实模式(16位寻址): 基址寄存器:BX,BP 变址寄存器:SI,DI 比例因子:0,1 位移量: 0,8,16位 对于保护模式(32位寻址): 基址寄存器:任何32位通用寄存器 变址寄存器:除ESP外的任何32位通用寄存器 比例因子:1,2,4,8 位移量: 0,8,32位
由四元素可组合出9种存储器寻址方式。 Pentium微处理器共有1种寻址方式: 1.立即数寻址 操作数作为立即数直接存在指令中,可为字节、字、 双字 MOVECX. 12345678H 低地址 操作码 78H ECX 12H 34H 56H 78H -56H CS段 34H 12H 高地址
由四元素可组合出9种存储器寻址方式。 Pentium微处理器共有11种寻址方式: 1. 立即数寻址 操作数作为立即数直接存在指令中,可为字节、字、 双字 MOV ECX, 12345678H 低地址 高地址 CS段 操作码 78H 56H 34H 12H ECX 12H 34H 56H 78H
2.寄存器寻址 操作数包含在指令规定的8位、16位、32位寄存器 中 MOVECX EDX ECX EDX 12H34H56H78H 12H34H56H78H 寄存器寻址由于无需从存储器中取操作数,故执行 速度快
2. 寄存器寻址 操作数包含在指令规定的8位、16位、32位寄存器 中 MOV ECX, EDX 12H 34H 56H 78H ECX 12H 34H 56H 78H EDX 寄存器寻址由于无需从存储器中取操作数,故执行 速度快
3.直接寻址 指令中的操作数部分直接给出操作数的有效地址 EA,操作数可以是16位或32位整数,操作数默认 在DS段中 低地址 操作码 MOVAX, 3000H OOH CS段 30H DS50000 3000 53000 50000 53000 DS段 34H AX 12H 34H 12H 高地址
3. 直接寻址 指令中的操作数部分直接给出操作数的有效地址 EA,操作数可以是16位或32位整数,操作数默认 在DS段中 MOV AX, [3000H] 低地址 高地址 CS段 操作码 00H 30H 34H 12H AX 12H 34H DS段 50000 53000 DS 5000 0 3000 53000 +
如果操作数在DS以外的其他段(CS,SS,ES,FS,GS) 中,指令中必须指明段寄存器 低地址 MOVAX, FS: 3000H 操作码 OOH CS段 30H FS20000 3000 23000 20000 23000 FS 段 34H AX 12H 34H 12H 高地址
如果操作数在DS以外的其他段(CS,SS,ES,FS,GS) 中,指令中必须指明段寄存器 MOV AX, FS:[3000H] 低地址 高地址 CS段 操作码 00H 30H 34H 12H AX 12H 34H FS段 20000 23000 FS 2000 0 3000 23000 +
4.寄存器间接寻址 操作数地址的偏移量(有效地址EA)存放在寄存 器中 16位寻址:偏移地址放在SL,DL,BP,BX中 以SL,DL,BX间接寻址,默认操作数在DS段中 MOVAX, ISI 以BP间接寻址,默认操作数在SS段中 MOVAX, IBPI 32位寻址:偏移地址放在8个32位通用寄存器中 除ESP,EBP默认段寄存器为SS外,其余均默认 段寄存器为DS MOVEAX IESP
4. 寄存器间接寻址 操作数地址的偏移量(有效地址EA)存放在寄存 器中 16位寻址:偏移地址放在SI,DI,BP,BX中 以SI,DI, BX间接寻址,默认操作数在DS段中 MOV AX, [SI] 以BP间接寻址,默认操作数在SS段中 MOV AX, [BP] 32位寻址:偏移地址放在8个32位通用寄存器中 除ESP,EBP默认段寄存器为SS外,其余均默认 段寄存器为DS MOV EAX, [ESP]