微型计算机原理(第三章)_第1页
微型计算机原理(第三章)_第2页
微型计算机原理(第三章)_第3页
微型计算机原理(第三章)_第4页
微型计算机原理(第三章)_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机原理……重庆三跌学院物理与电子工程学馆

微型计算机原理

(第三章)

微型计算机原理……重庆三跌学院物理与电子工程学馆

第三章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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论