版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机原理……重庆三跌学院物理与电子工程学馆
微型计算机原理
(第三章)
,
微型计算机原理……重庆三跌学院物理与电子工程学馆
第三章0X6寻址方式和指令系统
3.180X86寻址方式
3.280X86指令格式
3.380X86指令系统
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.180X86寻址方式
3.1.1数据寻址方式
操作数有可能在:
(1)代码段中,作为指令中的立即数
(2)CPU寄存器中
(3)存储器的数据段或堆栈段或附加数据段中
所以,总的来说,数据寻址方式分为三种:
立即寻址
寄存器寻址
存储器寻址
微型计算机原理……重庆三跌学院物理与电子工程学馆
、立即寻址
操作数直接包含在代码段的指令中。
如:MOVEAX,80000000H
MOVBX,6688H
MOVAL,12H
•立即数只能作为源操作数
•立即寻址主要用来给通用寄存器或存储器赋值
•不允许给段寄存器直接赋值
例3.1立即寻址微型计算机原理——重庆三疾学院物理与电子工程学限
.MODELtiny
.586
地址机器码.CODE
.STARTUP
1D240100B83412MOVAX,1234H
1D24010366BB00000000MOVEBX,0
1D240109B155MOVCL,55H
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
「代码段
指令地址
代码段
MOVAX,1234H$1D24:O1OO
1D24:O1O1
L1D24:O1O2
立即寻址过程示意
微型计算机原理……重庆三跌学院物理与电子工程学ft
机器码
地址a操作数
4OVAX,1234OPRD
CS:IPAX:
AHAL
代码段地址
基
地
址
代
码
段
立即寻址动态示意
微型计算机原理……重庆三为学院物理与电子工程学馆
二、寄存器寻址
操作数在寄存器中。
32位寄存器:EAX、EBX、ECX、EDX、ESP、EBP、
ESI、EDI
16位寄存器:AX、BX、CX、DX、SP、BP、SI、
DI、CS、DS、SS、ES、FS、GS
8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL
如:MOVAX,BX
MOVEDI,ESI
MOVAL,CL
微型计算机原理重庆三疾学院物理与电子工程学隐
例3.2寄存器寻址
.MODELTINY
.586
.CODE
地址机器码.STARTUP
1D24:01008BC3MOVAX,BX
1D24:01028ACAMOVCL,DL
1D24:0104668BF7MOVESI,EDI
.EXIT
END
微型计算机原理
三、存储器寻址
操作数在存储器中,其地址由指令以某种方式
指出。
(一)16位指令模式下:
物理地址二段基址X10H+有效地址EA
(二)32位指令模式下:
物理地址二段基址+有效地址EA
EA的计算方法根据采用的寻址方式不同而不同。
微型计算机原理……重庆三跌学院物理与电子工程学馆
(一)16位指令模式下的存储器寻址
16位指令模式寻址结构:
段基址义10H+基址+变址+偏移量
基址:BX、BP变址:SI、DI偏移量:8位或16位
如果有效地址在BX,SI或DI中,则以DS寄存器内容为段基
址;如果有效地址在BP中,则以SS段寄存器之内容为段基址。
如果使用段超越前缀(CS:ES:DS:SS:),操作数可以放在
冒号前指定的段。
16位指令模式寻址方式:
直接寻址寄存器间接寻址
寄存器相对寻址基址变址寻址
相对基址变址寻址
微型计算机原理……重庆三跌学院物理与电子工程学馆
1、直接寻址
操作数在存储器单元中。
操作数所在的有效地址EA直接由指令指出o
例1MOVAX,[3000H]
例2MOVBL,BLOCK
例3MOVBX,DATA1
微型计算机原理……重庆三跌学院物理与电子工程学第
例3.3直接寻址•"
.MODELSMALL
地址操作数.DATA
1D26000C12DATA1DB12H&FLASH动画演示
1D26000D3355DATA2DW5533H
.CODEK过程示意图
地址机器码.STARTUP
1D2400108A1E0C00MOVBL,DATA1
1D240014A10D00MOVAX,DATA2
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
CS
指令代码段
•EA=OOODMOVAX,DATA2
AX1----------FTWDS
歌;耀}数据段
直接寻址过程示意
微型计算机原理……重庆三失学院物理与电子工程学第
地址DATA
直接寻址动态示意
微型计算机原理……重庆三疾学院物理与也子工程学隐
2、寄存器间接寻址
操作数的有效地址在BX、BP或SI、DI中,EA
可表示为
厂(BX)-
(BP)
EA=
(SI)
一(DI)—
例1MOVAX,[BX]
例2MOVDL,[SI]
13.4寄存器间接寻址遨型叁
地址操作数.DATA
1D26000E1155DATA1DB11H,55H
1D2600102233DATA2DW3322H
.CODE
地址机器码.STARTUP
1D240010BE0E00MOVSI,OFFSETDATA1
1D2400138A04MOVAL,[SI]
1D240015BF1000MOVDI,OFFSETDATA2
1D2400188B1DMOVBX,[DI]
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
代码段
指令
MOVBX,[DI]
数据段
寄存器间接寻址过程示意
微型计算机原理……重庆三跌学院物理与电子工程学第
寄存器间接寻址动态示意
微型计算机原理……重庆三跌学院物理与电子工程学馆
3、寄存器相对寻址
操作数在存储单元中,其有效地址EA可表示为
-(BX)-
(BP)8位偏移量
EA=+
(SI)16位偏移量
-(DI)」
例1MOVAL,[BX+4000H]
亦可写成:MOVAL,4000H[BX]
例2MOVAX,[BP+2000H]
微型计算机原理……重庆三跌学院物理与电子工程学馆
列3.6寄存器相对寻址
.MODELSMALL
地址操作数.DATA
1D260002112233445566DATA1DB11H,22H,33H,44H
55H,66H
.CODE
地址机器码.STARTUP
1D240010BF0200MOVDI,2
1D2400138A850200MOVAL,DATA1[DI]
1D240017BF0500MOVDI,5
1D24001A8A9D0200MOVBL,DATA1[DI]
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
CS
IP
1D24001A指令
MOVBL,DATA1[DI]
卜代码段
DI:0005r
+0002="L
~0007
数据段卜数据段
地址
DS1D26PV
1D260007
寄存器相对寻址过程示意
微型计算机原理……重庆三跌学院物理与电子工程学隐
DATA1
寄存器相对寻址动态示意
微型计算机原理……重庆三跌学院物理与电子工程学馆
4、基址变址寻址
操作数在存储单元中,其有效地址EA可表示为
EA=
例1MOVAX,[BX+SI]
或写成:MOVAX,[BX][SI]
例2MOVAX,[BX+DI]
例3MOVAX,[BP+SI]
例4MOVAX,[BP+DI]
“I"一》r_…微型计算机原理——重庆三咙学院物理与电子工程学义
例3.7基址变址t寻址-----------------------------
.MODELSMALL
地址操作数.DATA
1D25000C11002200DATA1DW0011H,0022H,0033H,0044H,0055H,0066H
33004400
55006600
.CODE
地址机器码.STARTUP
1D240010BBOCOOMOVBX,OFFSETDATA1
1D240013BE0600MOVSI,6
1D2400168B00MOVAX,[BX+SI]
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
CS
IP
代码段
BX
SI
DS
1D250012
1D250013
基址变址寻址过程示意
微型计算机原理……重庆三跌学院物理与电子工程学第
DATA
基址变址寻址动态示意
微型计算机原理……重庆三跌学院物理与电子工程学馆
5、相对基址变址寻址
操作数在存储单元中,其有效地址EA可表示为
(BX)一(SI「8位偏移量
EA=+十
_(BP)__(DI)_16位偏移量
例1MOVAX,[BX+SI+1500H]
或写成MOVAX,1500[BX][SI]
例2MOVAX,[BP+DI+1000H]
例3.8相对基址封导4—重庆三疾学院物理与电子工程学隐
.MODELSMALL
地址操作数.DATA
1D25000E000000000000DATA1DB10HDUP(O)
000000000000
00000000
1D25001E112233445566DATA2DB11H,22H,33H,44H,55H,66H
.CODE
地址机器码.STARTUP
1D240010BBOEOOMOVBX,OFFSETDATA1
1D240013BFU00MOVDI,11H
1D2400168A4104MOVAL,[BX+DI+4]
.EXIT
.END
微型计算机原理……重庆三跌学院物理与电子工程学馆
cs
IP
BX
DI
DS
相对基址变址寻址过程示意
微型计算机原理……重庆三文学院物理与电子工程学第
DATA
相对基址变址寻址动态示意
微型计算机原理……重庆三跌学院物理与电子工程学馆
(二)32位指令模式下的存储器寻址
32位指令模式寻址结构由5部分组成:
段址+基址+变址*比例因子+偏移量
其中基址寄存器或变址寄存器可以是除ESP以
外的任何32位通用寄存器。当基址寄存器为EBP时,
默认段寄存器SS存放段选择符,否则,默认DS存
放段选择符。也可使用段超越前缀来指定。比例
因子为1,2,4,8o偏移量为8位或32位。
微型计算机原理……重庆三疾学院物理与电子工程学隐
32位指令模式下的存储器寻址方式
1>直接寻址
如:MOVEAX,[10000000H]
2、间接寻址
如:MOVEDX,[ECX]
3、相对基址寻址
如:MOVECX,[EAX+80H]
4、相对比例变址寻址
如:MOVEBX,[ESI*4+80H]
5、相对比例基址变址寻址
如:MOVEAX,[EBP+EDI*4+80H]
微型计算机原理……重庆三次学院物理与电子工程学馆
3.1.2程序地址寻址方式•
一、相对寻址
相对寻址为段内寻址,指令中给出带符号的相对偏
移量,程序目标地址为当前IP值加上相对偏移量作为偏移
地址。
二、直接寻址
直接寻址是指指令中直接给出转移指令的目标地址。在
段间转移中,指令中给出目标段地址或代码段的段描述符。
三、间接寻址
间接寻址分段内和段间间接寻址,指令中以间接方
式给出转移指令的目标地址,通常存放在数据段。
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.1.3堆栈地址寻址方式
字数据进栈步骤:
1、(E)SP—l-(E)SP
2、高8位一堆栈
3、(E)SP—l—(E)SP
4、低8位一堆栈
字数据出栈步骤:
1、栈顶内容一目标寄存器或目标单元的低8位
2、(E)SP+-(E)SP
3、栈顶内容一目标寄存器或目标单元的高8位
4、(E)SP+1-(E)SP
微型计算机原理……重庆三丈学院物理与电子工程学院
低W
进
出
栈—
栈
方
方
向
T>向
(E)SPfSPf
高地址高地址
堆栈操作示意
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.280X86指令格式
指令基本格式:
[标号:]助记符操作数;注释
BYTEPTR[ooo]
WORDPTR[ooo]
DWORDPTR[ooo]
如INCWORDPTR[BX]
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.380X86指令系统
按功能分类:
•数据传送指令
算术运算指令
逻辑运算指令
控制转移类指令
串操作指令
输入/输出指令
处理器控制指令
中断指令与DOS功能调用
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.3.1数据传送指令
数据传送指令包括:
•通用数据传送指令
堆栈操作指令
•地址传送指令
•标志寄存器传送指令
•查表指令
•符号扩展指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.3.1数据传送指令
数据传送指令包括:
通用数据传送指令
堆栈操作指令
地址传送指令
标志寄存器传送指令
查表指令
符号扩展指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
传送指令数据流
*CS不能为目的操作数,不能对(E)IP直接传送数据
*堆栈操作不允许为字节操作
微型计算机原理……重庆三跌学院物理与电子工程学馆
一、通用数据传送指令
DEST:目的操作数
SRC:源操作数
1、一般传送指令
MOVDEST,SRC
如:MOVAL,CL
MOVBX,[SI]
MOVEAX,EBX
微型计算机原理……重庆三跌学院物理与电子工程学馆
使用MOV指令应注意:
•立即数不允许直接送段寄存器,且立即数不能
做目的操作数
•源操作数和目的操作数不允许同时为存储器操
作数
•源操作数和目的操作数不允许同时为段寄存器
•两操作数的数据类型要一致
•传送操作不影响标志位
•不允许对CS、(E)IP传送数据
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、扩展传送指令
MOVSXDEST,SRC
MOVZXDEST,SRC
如MOVBL,80H
MOVSXAX,BL;AX=FF80H
MOVZXAX,BL;AX=0080H
*目的操作数为通用寄存器(16位或32位)
*源操作数长度必须小于目的操作数长度,为通
用寄存器或存储器操作数(8位或16位)
微型计算机原理……重庆三跌学院物理与电子工程学馆
3、交换指令
XCHGDEST,SRC
如:XCHGEAX,EBX
XCHGAX,[SI]
XCHGAL,[SI]
*两操作数中不允许出现立即数
*两操作数不允许同时为存储器操作数
*两操作数数据类型必须一致
微型计算机原理……重庆三跌学院物理与电子工程学馆
二、堆栈操作指令
•压栈指令PUSHSRC
如:PUSHEAXPUSHDS
PUSH[SI]PUSHDWORDPTR[SI]
PUSH1234HPUSHD80H
•出栈指令POPDEST
如:POPAXPOPDS
POP[BX]POPDWORDPTR[DI]
微型计算机原理……重庆三跌学院物理与电子工程学馆
三、地址传送指令
格式:LEADEST,SRC
*DEST为16位或32位通用寄存器
*SRC为16位或32位存储器操作数
例1:LEABX,[SI+1005H]
若SI=1000H贝!]BX=?
例2:LEADI,BLOCK
MOVDI,BLOCK
有何区别?
微型计算机原理……重庆三跌学院物理与电子工程学馆
四、标志寄存器传送指令
格式1:LAHF
SAHF
格式2:PUSHF
POPF
格式3:PUSHFD
POPFD
*SAHF、POPF、POPFD影响标志位
微型计算机原理……重庆三跌学院物理与电子工程学馆
五、查表指令
格式:
XLAT
指令规定:表格存于数据段中
表首偏移地址—BX
表内偏移量TAL
查找结果一AL
所找单元的物理地址:
(DS)X10H+(BX)+(AL)
微型计算机原理……重庆三跌学院物理与电子工程学馆
查表指令应用举例
例:试编程将内存中以BLOCK为起始地址的编码表中
顺序号为3的编码送AL寄存器。
LEABX,BLOCK
B__L_O__C__K_4
3FHMOVAL,3
06HXLAT
5BH
_____________44FH结果:AL内容为4FH
66H
6DH
•••
微型计算机原理……重庆三跌学院物理与电子工程学馆
六、符号扩展指令
针对带符号数,按带符号数扩展。
1、CBW
功能:AL(8位)-AX(16位)
2、CWD
功能:AX(16位)一DX:AX(32位)
3、CWDE
功能:AX(16位)―EAX(32位)
4、CDQ
功能:EAX(32位)一EDX:EAX(64位,
I
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.3.2算术运算指令
•加法指令
•减法指令
•加1减1指令
•比较指令
•乘法指令
•除法指令
•BCD算术运算指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
算术运算类指令特点
•影响标志位
•操作数不允许为段寄存器
•不允许两个操作数同为存储器操作数
•若无特别规定,操作数类型必须一致
•目的操作数不允许为立即数
•当操作数类型不明确时必须使用PTR伪指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
工加法指令
格式(1)ADDDEST,SRC
功能:源操作数+目的操作数一目的操作数
格式(2)ADCDEST,SRC
功能:源操作数十目的操作数十CF一目的操作数
例:32F2H+A020H=?
MOVAX,32F2H或MOVAX,32F2H
MOVBX,0A020HMOVBX,0A020H
ADDAX,BXADDAL,BL
ADCAH,
微型计算机原理……重庆三跌学院物理与电子工程学馆
二、减法指令
格式(1)SUBDEST,SRC
功能:目的操作数一源操作数一目的操作数
格式(2)SBBDEST,SRC
功能:目的操作数一源操作数一CF一目的操作数
*SUB、SBB指令与ADD、ADC一样,影响标志位
OF、SF>ZF>AF,PF,CF
微型计算机原理……重庆三跌学院物理与电子工程学馆
三、力口1减1指令
加1指令INCDEST
功能:目的操作数+1一目的操作数
减1指令DECDEST
功能:目的操作数一1一目的操作数
*不影响CF,影响OF、SF>ZF、AF、PF
例:INCBX
INCBYTEPTR[BX]
DECEAX
DECWORDPTR[SI]
微型计算机原理……重庆三跌学院物理与电子工程学馆
四、比较指令
格式CMPDEST,SRC
功能:目的操作数一源操作数
(1)若目、源为无符号数
CF=O则目三源(若ZF=L则目=源)
CF=1贝IJ目〈源
(2)若目、源为带符号数
①若目、源为同号数(OF=0)
若均为正,SF=O则目工源(若ZF=1,贝!]目=源)
SF=1则目《源
若均为负,SF=O则目叁源(若ZF=1,贝1]目=源)
SF=1则目〈源
微型计算机原理……重庆三跌学院物理与电子工程学馆
②若目、源为异号数(OF=0或1)
若目为正,源为负则目>源
若此时SF=O贝!JOF=0
若此时SF=1贝!JOF=1
若目为负,源为正则目〈源
若此时SF=1贝!jOF=0
若此时SF=O贝!|OF=1
综合起来,若目、源为带符号数
OF®SF=0贝!J目工源
OF®SF=1贝!|目〈源
微型计算机原理……重庆三跌学院物理与电子工程学馆
五、交换相加指令
格式XADDDEST,SRC
功能:目的操作数十源操作数一目的操作数
且原目的操作数一源操作数
影响标志位OF、SF>ZF>AF>PF、CF
六、求补指令
格式NEGDEST
功能:求目的操作数的相反数的补码
影响标志位OF、SF>ZF>AF>PF、CF
微型计算机原理……重庆三跌学院物理与电子工程学馆
七、乘法指令
格式MULSRC(针对无符号数)
IMULSRC(针对带符号数)
隐含规定:
•SRC为一乘数因子,可为8位/16位/32位寄存器或存储器
•另一乘数因子在累加器中(AL/AX/EAX)
•结果为乘积,乘积隐含在(AX/DX:AX/EDX:EAX)
ttt
字节乘字乘双字乘
*若乘积高位为0,贝(JCF=0,0F=0
若乘积高位含有效数据,贝!JCF=1,0F=l
对其它标志位无定义
微型计算机原理……重庆三跌学院物理与电子工程学馆
例:计算存于下列内存中的两个无符苴数的乘积
1234Hx2345H=?结果放RESULT单元
LEABX,BLOCK
BLOCK、
A34HMOVAX,[BX]
12HMULWORDPTR[BX+4]
10H
MOVRESULT,AX
28H
45HMOVRESULT+2,DX
23H
RESULT04H
----------A结果为02820404H
04H
82HCF=1,OF=1
02H
微型计算机原理——重庆三味学院物理与电子工程学隐
八、除法指令“
格式DIVSRC(针对无符号数)
IDIVSRC(针对带符号数)
隐含规定:
•SRC为除数,为8位/16位/32位寄存器或存储器
被除数隐含在(AX/DX:AX/EDX:EAX)
商隐含在(AL/AX/EAX)
•余数隐含在(AH/DX/EDX)
ttt
字节除字除双字除
*当除数为0或商溢出时会产生中断
*被除数必须是除数的双倍长度,否则,需要进行高位才展
无符号数高位扩展为全0,带符号数按符号扩展指令扩展
微型计算机原理……重庆三跌学院物理与电子工程学馆
九、组合型BCD算术运算指令
组合BCD码也称压缩格式的BCD码,用一个字节
存储2位BCD码。
如十进制数12的组合BCD码为00010010B
35的组合BCD码为00U0101B
该类指令使用场合:
当参与运算的十进制数以其组合BCD码形式存放,加减
时,计算机会当作二进制数来运算,其结果一定不是理想要
得的组合型BCD码结果,这时,必须用组合型BCD算术运算
指令加以调整,即将二进制结果调整为BCD码表示形式。
加法调整指令一般紧跟在ADD或ADC之后,减法调整指
令一般紧跟在SUB或SBB之后。制.
微型计算机原理……重庆三跌学院物理与电子工程学馆
1、组合型BCD加法调整指令
格式DAA
功能:AL(二进制和)一组合BCD码
例:26+68=?
分析:用组合BCD码存放时,两个数应分别为26H
和68H,理想结果应该为94H。编程如下:
MOVAL,26H
MOVBL,68H
ADDAL,BL;AL=8EH
DAA;AL=94H
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、组合型BCD减法调整指令
格式DAS
功能:AL(二进制差)♦组合BCD码
例:65—56=?
MOVAL,65H
MOVBL,56H
SUBAL,BL;AL=0FH
DAS;AL=09H
微型计算机原理——重庆三族学院物理与电子工程学隐
十、非组合型BCD算术运算指令
非组合BCD码也称非压缩格式的BCD码,用一个
字节存储1位BCD码,高4位无意义。
如非组合BCD码00010010B表示的数为2
非组合BCD码00U0101B表示的数为5
3635H即00U0U000U0101B表示的数是65
由于0〜9的ASCII码为30H〜39H,机器采用一个字节存放一
位ASCII码,所以,ASCII码是一种非组合型BCD码。
非组合型BCD调整指令有加、减、乘、除四种调整
指令。
微型计算机原理……重庆三跌学院物理与电子工程学馆
1、非组合型BCD加法调整指令
格式AAA
功能:AL(二进制和)一非组合BCD码
例:5+9=?
分析:用非组合BCD码存放时,两个数应分别为
05H和09H,理想结果应该为0104H。编程如下:
MOVAL,05H
MOVBL,09H
ADDAL,BL;AL=0EH
AAA;AX=0104H
微型计算机原理……重庆三族学院物理与电子工程学院
2、非组合型BCD减法调整指令
格式AAS
功能:AL(二进制差)一非组合BCD码
3、非组合型BCD乘法调整指令
格式AAM
功能:AL(二进制乘积)一非组合BCD码
4、非组合型BCD除法调整指令
格式AAD
功能:AX(两位非组合BCD码)一二进制数
*AAD指令必须放在除法指令之前进行。
其他调整指令都是先运算后调整。
微型计算机原理……重庆三七学院物理与电子工程学馆
思考题•
判断下列指令是否正确,若有错误,请指出原因,并改正。
(1)MOVBL,OFFSETBLOCK(2)LEADI,[BX+SI]
(3)PUSHAL(4)POPCS
(5)MOVES,DS(6)MOVAX,[SI+DI]
(7)MOV[BX+BP],AX(8)ADDAX,F000H
(9)MOV[BX],[SI](10)MOVAH,DX
(11)INC[BX](12)XCHGAX,2000H
(13)MOVAX,[BX+DX](14)ADD[BX],BX
(15)MOVAX,DI+SI(16)MOVEAX,[ECX*4+80H]
微型计算机原理……重庆三跌学院物理与电子工程学馆
3.3.3逻辑运算指令
包括:逻辑指令、移位指令、位操作指令
该类指令特点:
•影响标志位
•操作数不允许为段寄存器
•不允许两个操作数同为存储器操作数
•若无特别规定,操作数类型必须一致
•目的操作数不允许为立即数
•当操作数类型不明确时必须使用PTR伪指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
•、逻辑指令
1、逻辑与指令
格式ANDDEST,SRC
功能:目的操作数A源操作数一目的操作数
*常用来使目的操作数的某些位被屏蔽(即清0)
例:MOVAL,00111001B
若要使AL中高4位清0,低4位不变,怎么办?
ANDAL,00001111B
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、逻辑或指令
格式ORDEST,SRC
功能:目的操作数V源操作数一目的操作数
*常用来使目的操作数的某些位置1
例:MOVAL,00001001B
若要使AL中最高2位置1,低6位不变,怎么办?
ORAL,11000000B
微型计算机原理……重庆三跌学院物理与电子工程学馆
3、逻辑异或指令
格式XORDEST,SRC
功能:目的操作数㊉源操作数一目的操作数
①常用来使目的操作数的某些位变反
例:MOVAL,00001001B
若要使AL中D7、Do位变反,其它位不变
XORAL,10000001B
*②对寄存器操作数清0
例XORDS,DS
小③测试一操作数与另一操作数是否相等
例XORAL,BL若ZF=1,贝1]AL=BL
微型计算机原理……重庆三跌学院物理与电子工程学馆
4、逻辑非指令
格式NOTDEST
功能:目的操作数按位取反一目的操作数
5、测试指令
格式TESTDEST,SRC
功能:目的操作数人源操作数
*常用来测试目的操作数的某位的状态(是。还是D
或者用来测试目的操作数的某些位是否同时为0
例:若要测试AL中D7位为0还是为L怎么办?
TESTAL,10000000B
若ZF=L贝!]D7=0
若ZF=0,贝(JD7=1
微型计算机原理……重庆三跌学院物理与电子工程学馆
逻辑指令对标志位的影响
•NOT指令不影响标志位
•AND、OR、XOR、TEST指令影响标志位SF、
ZF>PF,并且使CF=0,OF=0,对AF未定义
微型计算机原理……重庆三跌学院物理与电子工程学隐
二、移位指令•
1、移位分类
「算术移位(A)j左移(L)
<[右移(R)
非循环(S)|[左移(L)
,逻辑移位(H)[右移(R)
「小循环移位(O)[左移(L)
循环(R)Ji右移(R)
'大循环移位(C)[左移(L)
【右移(R)
移位指令有:SAL、SAR、SHL>SHR
ROL>ROR>RCL、RCR
缱
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、移位指令格式
DEST:表示目的操作数,(寄存器或存储器)
OPRD:表示移位的次数,可以是立即数,也可
以由CL间接指定移位次数。
SALDEST,OPRD
SARDEST,OPRD
SHLDEST,OPRD
SHRDEST,OPRD
ROLDEST,OPRD
RORDEST,OPRD
RCLDEST,OPRD
RCRDEST,OPRD
微型计算机原理……重庆三疾学院物理与电子工程学馆
3、移位示意图1(非循环移位)•
MSB操作数LSB
o
MSB操作数LSB
MSB操作数LSB
0
(a)SAL/SHL;(b)SAR;(c)SHR
微型计算机原理……重庆三跌学院物理与电子工程学馆
4、移位示意图2(循环移位)
MSB操作数LSB
CF------------------------
MSB操作数LSB
aCF3)
MSB操作数LSB
CF——y
(。)
MSB操作数LSB
CF⑷
(a)ROL;(b)ROR;(c)RCL;(d)RCR
微型计算机原理……重庆三跌学院物理与电子工程学馆
5、对标志位的影响
SAL]
SHLI影响OF、SF>ZF、PF、CF
SHR>
SARJ
ROL]
RORI影响CF、OF
RCL)
RCR>
微型计算机原理……重庆三跌学院物理与电子工程学馆
设一个字节数据X存放在AL寄存器中,试分
析下列程序段的功能。
XORAH,AH;AH=0
SALAX,1;AX=2X
MOVBX,AX;BX=2X
MOVCL,29
SALAX,CL;AX=4X(2X)=8X
ADDAX,BX;AX=8X+2X=10X
功能:10X—AX
微型计算机原理……重庆三跌学院物理与电子工程学馆
三、位操作指令
1、位测试和设置指令
BTDEST,SRC(指定位送CF)
BTCDEST,SRC(指定位送CF,该位取反)
BTRDEST,SRC(指定位送CF,该位清0)
BTSDEST,SRC(指定位送CF,该位置1)
如MOVAX,1234H;AX=0001001000110100B
MOVCX,5
BTAX,CX;CF=1,AX=1234H
BTCAX,CX;CF=1,AX=1214H
BTSAX,CX;CF=0,AX=1234H
BTRAX,CX;CF=1,AX=1214H
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、位扫描指令
BSFDEST,SRC
功能:从低位开始扫描SRC,若所有位为0,贝!JZF=0,否
贝!]ZF=1,且将第一个出现1的位号存入DEST中。
BSRDEST,SRC
功能:从高位开始扫描SRC,若所有位为0,贝!JZF=0,否
贝!]ZF=1,且将第一个出现1的位号存入DEST中。
如MOVAX,1234H;AX=0001001000110100B
BSFBX,AX;ZF=1,BX=0002H
BSRDX,CX:CF=1,AX=000CH
微型计算机原理……重庆三跌学院物理与电子工程学馆
3、位标志指令
CLC(CF=O)
STC(CF=1)
CLD(DF=O)
STD(DF=1)
CLI(IF=O)
STI(IF=1)
4、条件设置字节指令
格式:SETCONDDEST
功能:测试条件(COND)若为真,则将DEST
置01H,否则置00H。见P87的表3.3
>
微型讨算机原理……重庆三央学院物理与帽子工程学院
3.3.4控制转移类指令
该类指令不影响标志位。
・无条件转移指令
•条件转移指令
•循环控制指令
微型计算机原理……重庆三跌学院物理与电子工程学馆
一、无条件转移指令
TARGET:目标标号REG:通用寄存器
1、段内直接转移
JMPTARGET
2、段内间接转移
JMPREG
JMPNEARPTR[REG]
3、段间直接转移
JMPFARPTRTARGET
4、段间间接转移
JMPFARPTR[REG]
微型计算机原理……重庆三跌学院物理与电子工程学馆
二、条件转移指令
1、单标志位条件转移指令
JOTARGET;OF=1,即溢出转
JNOTARGET;OF=0,不溢出转移
JSTARGET;SF=1,结果为负转移
JNSTARGET;SF=O,结果为正转移
JCTARGET;CF=1,有进位转移
JNCTARGET;CF=O,无进位则转移
JPTARGET;PF=1,为偶转移
JNPTARGET;PF=O,为奇转移
JE/JZTARGET;ZF=1,等于或为零转移
JNE/JNZTARGET;ZF=O,等于或非零转移
微型计算机原理……重庆三跌学院物理与电子工程学馆
例:在不改变AL值的同时,检测AL中1的个数,且存放
在BL中。
.MODELTINY
.CODE
.STARTUP
MOVBL,0
MOVDL,8
AGAIN:ROLAL,1
JNCNEXT
INCBL
NEXT:DECDL
JNZAGAIN
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
2、无符号数比较条件转移指令
助记符:
J-转移A—于B—>低于
E一等于N一不
指令:
JA/JNBETARGET;高于/不低于等于转移
JAE/JNBTARGET;高于等于/不低于转移
JB/JNAETARGET;低于/不高于等于转移
JBE/JNATARGET;低于等于/不高于转移
WV/Z步
微型计算机原理……重庆三跌学院物理与电子工程学馆
3、带符号数比较条件转移指令
J-转移G一大于L一小于
E一等于N一不
JG/JNLETARGET;大于/不小于等于转移
JGE/JNLTARGET;大于等于/不小于转移
JL/JNGETARGET;小于/不大于等于转移
JLE/JNGTARGET;小于等于/不大于转移
4、测试CX条件转移指令
JCXZTARGET;CX=O转移
JECXZTARGET;ECX=O转移
微型计算机原理……重庆三瑛学院物理与电子工程学院
使用条件转移指令应注意:
*条件转移指令一般跟在CMP指令或TEST指令
之后,根据其影响的标志位来决定是否产生转
移。
*当条件满足时,转移到目标标号去执行,否则,
顺着程序往下执行。
微型计算机原理……重庆三跌学院物理与电子工程学馆
例3.65假设AL中带符号数X为某值,试编程将
求出的符号函数值f(x)存放在AH中。
.MODELTINY
.CODE
.STARTUP
CMPAL,0
JGEBIG
MOVAL,0FFH
JMPDONE
BIG:JEDONE
MOVAL,1
DONE:MOVAH,AL
.EXIT
END
微型计算机原理……重庆三跌学院物理与电子工程学馆
三、循环控制指令
格式:LOOP”TARGET
功能:(E)CX—1一(E)CX,不影响标志位,且测试条件
成立,则转移到TARGET处执行.
LOOP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《光电传感与检测器》课件
- 病案库房安全管理制度
- 医疗机构监管培训
- 仪表巡检培训课件
- 儿童培训机构早会
- 数学学案:课堂导学对数及其运算第课时对数概念及常用对数
- 中国医疗保障
- 《除氧给水系统》课件
- 宣传片制作培训课件
- 《全身状态高职》课件
- GB/T 699-2015优质碳素结构钢
- 新历史主义文艺思潮
- GB/T 4337-2015金属材料疲劳试验旋转弯曲方法
- GB/T 28762-2012数控剪板机
- GB/T 283-2021滚动轴承圆柱滚子轴承外形尺寸
- 品管圈徽SOS圈释义
- 萨提亚模式家庭治疗课件
- 行政事业单位全面实施预算绩效管理思路和路径及其评课件
- 《墨梅》课件(省一等奖)
- 国际贸易之进出口流程操作课件
- 三美术上册第16课新颖的电脑课件1新人教版
评论
0/150
提交评论