版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
•第三章Pentium微处理器的指令系统
:3.1概述
•3.2Pentium微处理器的寻址方式
•3.3数据传送指令
:3.4算术运算指令
:3.5逻辑运算指令
•3.6串操作指令
•3.7程序控制指令
,3.8保护模式的系统控制指令
:3.9浮点运算指令
>3.10MMX指令简介
3.1概述
•指令是微处理器执行某种操作的命令,微处理器全
部指令的集合称为指令系统。
■指令有两种书写格式:机器指令和符号指令。
•符号指令是用规定的助记符和规定的书写格式书写
的指令。符号指令的书写格式为:
操作码助记符操作数助记符
MOVAL,1
1011000000000001
:3.2Pentium微处理器的寻址方式
••寻址方式:寻找指令中操作数地址的方式。
■操作数有三种可能的存放方式:
•直接包含在指令中
:.立即数
Li立即数寻址
.♦包含在某个寄存器中
寄存器操作数
寄存器寻址
•在内存中
’•存储器操作数(内存操作数)
r*存储器寻址
内存实际地址由两部分组成:存储单元所在段的基
•地址/段内偏移地址(偏移量)
■MOVES:[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位
♦由四元素可组合出9种存储器寻址方式。
>Pentium微处理器共有11种寻址方式:
.•1.立即数寻址
«操作数作为立即数直接存在指令中,可为字节、字、
―双字
2.寄存器寻址
操作数包含在指令规定的8位、16位、32位寄存器
中
MOVECX,EDX
ECXEDX
12H34H56H78H56H]78H
寄存器寻址由于无需从存储器中取操作数,故执行
速度快
3.直接寻址
指令中的操作数部分直接给出操作数的有效地址
如果操作数在DS以外的其他段(CS,SS,ES,FS,GS)
・4.寄存器间接寻址
♦操作数地址的偏移量(有效地址EA)存放在寄存
•器中
♦16位寻址:偏移地址放在SI,DI,BP,BX中
•以SI,DI,BX间接寻址,默认操作数在DS段中
•MOVAX,[SI]
.以BP间接寻址,默认操作数在SS段中
:MOVAX,[BP]
.32位寻址:偏移地址放在8个32位通用寄存器中
除ESP,EBP默认段寄存器为SS外,其余均默认
■段寄存器为DS
MOVAX,[BP]
70000
+BP3000
70000
73000
73000
AX12H34H
5.基址寻址
EA=[基址寄存器]+位移量
16位寻址:BP,BX为基址寄存器
BX,DS为默认段寄存器
BP,SS为默认段寄存器
32位寻址:8个32位通用寄存器均可作为基址寄存
器,除ESP,EBP默认段寄存器为SS外,其余均默认
段寄存器为DS
MOVEAX,[BX+24]
MOVDX,[EAX+1500]
MOVDX,[BX+1500]
DS7000|0
BX|2000
+1500
73500
AX12H34H.
高地址
6.变址寻址
EA=[变址寄存器]+位移量
16位寻址:SLDI为基址寄存器,DS为默认段寄存器
••
32位寻址:除ESP外其余7个32位通用寄存器均可
作为变址寄存器,EBP默认SS为段寄存器,其余均
默认段寄存器为DS
MOVAH,[SI+5]
变址寻址适用于对一维数组的元素进行操作。
7.比例变址寻址
EA=[变址寄存器]x比例因子+位移量
只适用于32位寻址
MOVEAX"ESI*4+50]
比例变址寻址适用于一维数组操作,当数组元素大
小为2/4/8字节时,它更方便、有效
8.基址加变址寻址
EA=[基址寄存器]+[变址寄存器]
适用于16位和32位寻址
MOVAX,[BX+SI]
MOVEAX,[EDX+EBP]
基址加变址寻址主要用于二维数组操作和二重循环
■
9.基址加比例变址寻址
EA=[变址寄存器]x比例因子+[基址寄存器]
只适用于32位寻址
MOVEAX"EDX*8+EAX]
适用于数组元素大小为2/4/8字节时二维数组操作
10.带位移的基址加变址寻址
QEA=[基址寄存器]+[变址寄存器]+位移量
・适用于16位和32位寻址
.MOVAX,[BX+SI+50]
.MOVEAX,[EDX+EBP+0FFFF000H]
主要用于二维数组操作,位移量为数组起始地址
11.带位移的基址加比例变址寻址
EA=[变址寄存器]x比例因子+[基址寄存器]+位移量
只适用于32位寻址
MOVAX,[BX+SI+50]
MOVEAX,[EDX+EBP+0FFFF000H]
适用于数组元素大小为2/4/8字节时二维数组操作,位
移量为数组起始地址
3.3数据传送指令
执行后不影响标志位,源操作数不变
1.通用数据传送指令
■MOV目标操作数,源操作数
1)源操作数可以是8/16/32位的立即数、寄存器操
作数、内存操作数。目标操作数不允许为立即数,
其余同源操作数。源、目不能同时为内存操作数。
2)源、目操作数类型必须匹配
MOVBYTEPTR[BX],12H
3)不能向段寄存器写立即数
MOVAX,2000
MOVDX,AX
4)以CS为目标的一切传送指令都是非法的
•・MOVSX目标寄存器,源操作数
♦符号扩展传送指令
•MOVDL,-16
>MOVSXBX,DL
•・MOVZX目标寄存器,源操作数
•零扩展传送指令
MOVDL,-16
MOVZXBX,DL
•XCHG目标操作数,源操作数
交换指令,源、目不能同为内存操作数
XCHGAX,[SI+0400H]
•BSWAP32位寄存器
字节交换指令,
MOVEAX,12345678H
BSWAPEAX
•XLAT表头变量名
一查表指令,用来取表中某指定数的值
TABLEDB48,49,50,51,52,53,54,55,56,57
MOVBX,OFFSETTABLE
MOVAL,5
XLATTABLE
执行后AL=53
•LAHF
SAHF
标志寄存器传送指令
2.堆栈操作指令
'•-PUSH源操作数
进栈指令,先调整堆栈指针,再把源操作数压栈
*
・PUSHAX
•PUSHDWORDPTR[SI+5]
・POP目标操作数
•出栈指令,先将栈顶2/4字节送目标操作数,再调
,•整堆栈指针
:POPAX
.POPDWORDPTR[SI+5]
•PUSHF
POPF
16位标志寄存器进栈/出栈指令
•PUSHFD
POPFD
32位标志寄存器进栈/出栈指令
•PUSHA
POPA
16位通用寄存器进栈/出栈指令
•PUSHAD
POPAD
32位通用寄存器进栈/出栈指令
:3.目标地址传送指令
•・LEA目标寄存器,源操作数
•有效地址传送指令,源操作数为内存操作数,将
♦内存单元的有效地址(而不是内容)传送到目标
寄存器
・LEAEAX,[SI+5]
.•-LDS/LES/LFS/LGS/LSS目标寄存器,源操作数
.•指针传送指令
:ADDRDD1A2B3C4DH
.LDSSI,ADDR
4.1/0数据传送指令
*完成累加器和I/O端口之间的数据传送
多“N累加器,端口号
•端口号为8位时,直接寻址,最多可访问256个端口
•INAX,PORT
Q端口地址为16位时,间接寻址,端口地址必须放
「•在DX寄存器中,最多可访问65536个端口
,•INAL,DX
•OUT端口号,累加器
•3.4算术运算指令
*力口、减、乘、除,运算对象8/16/32位有符号/无符号
整数,以及BCD码
影响标志位
1.加法指令
•-ADD目标操作数,源操作数
[・[源操作数+目标操作数—>目标操作数
,/[・ADC目标操作数,源操作数
’.源操作数十目标操作数+CF——>目标操作数
':'影响A,CQ,P,S,Z6个标志位
K-INC目标操作数
;目标操作数+1——>目标操作数
影响AQ.RS.Z5个标志何
2.减法指令
•SUB目标操作数,源操作数
目标操作数-源操作数——>目标操作数
•SBB目标操作数,源操作数
目标操作数■源操作数・CF——>目标操作数
•DEC目标操作数
目标操作数-1——>目标操作数
•NEG目标操作数
0■目标操作数——>目标操作数
影响A,CQ,P5Z6个标志位
■CMP目标操作数,源操作数
比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论