IT计算机汇编指令总结_第1页
IT计算机汇编指令总结_第2页
IT计算机汇编指令总结_第3页
IT计算机汇编指令总结_第4页
IT计算机汇编指令总结_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

W名

博名♦上黑

零果/零罩

&豺然名耦伞醇

蔡史统期聊春忌

修明长琼噌攀鼠

M

名第然财*料

A

A

AAA

胆A

A数据传送指令,能够实现内部寄

存器之间的数据传送,内部寄存

器与存储器之间的数据传送,

A通用数据传送指令

»堆栈操作指令

A标志寄存器传送指令

A地址传送指令

»输入输出指令

AMOV指令

>XCHG指令

MOV总结

可在CPU内或CPU和存储器之间传送字或字节

传送的信息可从寄存器到寄存器

立即数到寄存器

立即数到存储单元

存储单元到寄存器

寄存器到存储单元

寄存器或存储单元到除CS夕卜的段寄存器

段寄存器到寄存器或存储单元

MOV总结

MOV指令的目的操作数不允许用立即数方

式,也不允许用CS寄存器。

除源操作数为立即数的方式外,两操作

数必须有一个是寄存器。

不允许在两个段寄存器之间直接传送数

不允许在两个存储器之间直接传送数据

立即数不能直接送段寄存器

XCHG指令

XCHGD,S;(D)—(S)

功能:将源操作数和目的操作数的内容相

互交换。

★注意:源操作数和目的操作数可以是通

用寄存器或存储器,但D和S不得同时是存

储器操作数。

XLAT和XLATB指令

XLATB;(AL)一((BX)+(AL))

该指令为换码指令,常用于查表,并约定BX中

装入的是表的起始偏移地址,AL是相对表头的

偏移量,因而(BX)+(AL)表示所要查找的元

素的有效地址,指令执行后,该元素将送至AL

寄存器,所以称该指令为换码指令,即从表中

换取与AL中的序号相对应的码值。

XLAT指令

XLAT;无操作数

XLATSource-table;设置形式操作数

XLAT段寄存器:Source-table;带段超

越的操作数

??

H迪

sd

no

dd

AA

进栈指令PUSH

语句格式:PUSHOPS

功能:将寄存器、段寄存器或存储器中的一

个字数据压入堆栈,堆栈指针减2。

①(SP)-1-SP(OPS)15~8f[SP]

②(SP)-1-SP(OPS)7~0—[SP]

指令的操作数:可以是16位的通用寄存器,

段寄存器和存储器。

出栈指令POP

K吾句格式:POPOPD

功能:将栈顶元素弹出送至某一寄存器、段

寄存器(除CS外)或存储器,堆栈指针加2。

从POP指令功能可看出,该指令为PUSH指令的

逆过程。

①([SP])f(OPD)7~0(SP)+1-SP

②([SP])—(OPD)15〜8(SP)+1-SP

目的操作数可以是16位通用寄存器、段寄存

器和存储器,但是代码段CS不能作为目的操

作数出栈指令。

个工

H工

s

d

n

牺O

d

d

4

却4

工工■迪

H

电H

*

*

v

V

q

器S斜丑

G

G

仲迪迪能能

H也他仲

生V部毕曲曲

叔也.故故

卑H卑华

埠V

标志送AH指令LAHF

A语句格式:LAHF

功能:将标志寄存器的低8位送入AH寄存器c

即(FLAGS)7-0—AH。该指令的执行对标志

位无影响。

【例】标志寄存器传送。

执行前:(FLAGS)=0485H,(AX)=0FFFFH

A执行指令:LAHF

执行前:(FLAGS)=0485H,(AX)=085FFH

AH送标志指令SAHF

语句格式:SAHF

功能:将AH的内容送入标志寄存器的俅8位,

高8位不变。即(AH)-FLAGS7-0。

从该指令功能可看出,SAHF为LAHF的逆过程。

标志寄存器进栈指令PUSHF

A语句格式:PUSHF

功能:将标志寄存器的内容压入

堆栈。即(FLAGS)-J(SP)o

标志寄存器出栈指令POPF

鼠能:将栈顶内容弹出送入标志寄存器中。

A即「(SP)-FLAGS。

POPF指令与PUSHF指令互为逆过程。

【例】将标志寄存器的单步标志TF置位。

PUSHF;(FLSGS)-J(SP)

POPAX;(SP)-AX

ORAX,0100H;设置D8=TF二1

PUSHAX;(AX)-J(SP)

POPF;(SP)—(FLAGS,即(AX)-JFLAGS

地址传送指令

传送偏移地址指令LEA

>传送偏移地址及数据段首址指令LDS

>传送偏移地址及附加数据段指令LES

共同特点:

把变量的偏移地址(LEA)或段地址和偏移地址

(LDS、LES)送给寄存器,以提供访问变量的

工具。

指定的寄存器不能使用段寄存器

源操作数必须使用除立即数和寄存器方式外的其它

寻址方式。

传送偏移地址指令LEA

语句格式:LEAOPD,OPS

功能:按源地址的寻址方式计算偏移地址,

将偏移地址送入指定寄存器。

【例】主存偏移地址的获取。

MOVBX,0100H;(BX)=0100H

MOVSI,0210H;(SI)=0210H

LEABX,1234[BX+SI];(BX)=1544H

LEASI,[BX+SI+20H];(SI)—(BX)+(SI)+20H

LDS指令

LDSREG,SRC

;(REG)—(SRC)(DS)-(SRC+2)

功能:把源操作数指定的4个相继的字节

送到由指令指定的寄存器及DS寄存器中。

该指令常指定SI寄存器。

LES指令

LESREG,SRC

;(REG)—(SRC)(ES)-(SRC+2)

功能:将主存某字单元内容送指定寄

存器。

(OPS)fOPD,(OPS+2)fES

该指令常指定DI寄存器。

D

看b

0

/春

I

(

G

H

女H

9

H

H

H

相H双

H尸

OO

H

王9胆

9尸

9工

)

索t

■。

fr

G

O

b

<。

目。

徐。9强

落0

。衣g

喀z祗

a

迪布¥酒

田.

.

冬d

集口

粮w

fr

旁#

K

算术运算类指令

A加法指令

A减运算指令

A乘运算指令

A除运算指令

A符号扩展指令

A十进制调整指令

加法指令

»加1指令INC

A加指令ADD

A带进位加指令ADC

加运算指令

加法运算除INC不影响CF位外,其余都影

响条件标志位(CFZFSFOFPFAF)

CF位是根据最高有效位是否有向高位的

进位设置的。有,CF=1

OF根据操作数的符号及变化情况来设置

若两操作数符号相同,结果的符号与之相

反,OF=1

OF表示带符号数的溢出

CF表示无符号数的溢出

加1指令INC

语句格式:INCOPD

功能:将目的操作数加1,结果送目的地址。

即(OPD)+1-0PD。

INC指令是一个单操作数指令,操作数可以

是寄存器或存储器操作数。

如:INCBX,即(BX)+1-BX。

用法:加1指令可用于对计数器和地址指针进

行调整,由于对CF无影响,所以无需保护状态

加指令ADD

语句格式:ADDOPD,OPS

功能:将目的操作数与源操作

数相加,结果存入目的地址中,

源地址的内容不改变。

即(OPD)+(OPS)—(OPD)。

带进位加指令ADC

3M

w语句格式:ADCOPD,OPS

功能:将目的操作数加源操作数再加低位进位,

结果送目的地址。

用法:该指令常用于多精度加法的计算。

即(OPD)+(OPS)+CF—(OPD)o

【例】无符号双字加法运算。

MOVAX,4652H;(AX)=4652H

ADDAX,0F0F0H;(AX)=3742H,CF=1

MOVDX,0234H;(DX)=0234H

ADCDX,OFOFOH;(DX)=0F325H,CF=O

减运算指令

A减1指令DEC

A减指令SUB

A晞借位减指令SBB

A求补指令NEG

A比较指令CMP

减运算指令

减法运算的条件码设置与加法运算类似

OF根据操作数的符号及变化情况来设置

若两操作数符号相反,结果的符号与减数

相同,则OF=1

OF表示带符号数的溢出

CF表示无符号数的溢出

减1指令DEC

»语句格式:DECOPD

功能:将目的操作数减1,结果送目的地址。

即(OPD)—1—(OPD)o

标志位:除CF标志位不受影响外,其余状态

标志均受影响。

目的操作数:可以放在通用寄存器和存储器

中。

如:DECCXo即(CX)—1—CX。

减1指令DEC也一般用于对计数器和地址指针

的调整。

减指令SUB

语句格式:SUBOPD,OPS

功能:目的操作数减源操作数,结果

存于目的地址,源地址内容不变。

即(OPD)-(OPS)一(OPD)

指令将对CF、AF、SF、ZF、PF、OF状

态标志位有影响,使用的操作数组合

与ADD指令相同。

带借位减指令SBB

语句格式:SBBOPD,OPS

功能:目的操作数减源操作数再减低位

借位CF,结果送目的地址。

即(OPD)-(OPS)-CF一(OPD)

用法:SBB指令常用于多精度的减法

军舁中。

求补指令NEG

»语句格式:NEGOPD

功能:将目的操作数的每一位求反(包括

符号位)后加1,结果送目的地址。

A即一(OPD)—(OPD)o

或OFFFFH—(OPD)+1-(OPD)o

操作数:可以是通用寄存器或存储器。

标志位:影响SF、ZF、AF、PF、OF,在一

般情况下,总使CF=1,除非操作数为零时,

才使CF=0;0F标志一般情况下为0,但当操

作为80H或8000H,NEG指令对其求补,结果

与原操作数相同,此时0F=l。

比较指令CMP

语句格式:CMPOPD,OPS

A功能:

>目的操作数减源操作数,结果只影响标志

位,不送入目的地址。

A即(OPD)-(OPS)o

A用法:

此指令常用于比较两个数的大小,当比较

指令与条件转移指令结合使用时,可以完成

各种条件判断和相应的程序转移。

乘运算指令

>无符号数乘法指令MUL

>有符号乘指令IMUL

A特点:

目的操作数必须是累加器,

源操作数可以使用除立即数方式以外的

任一种寻址方法

乘运算指令

对CF和OF以外的条件码无定义(状态不

定)

对MUL指令,若乘积的高一半为0,CF和

0F为0

对MUL指令,若乘积的高一半为低一半的

符号扩展,CF和0F为0

无符号数乘法指令MUL

A语句格式:MULOPS

A功能:

若是字节数据相乘,(AL)与OPS相乘得到字

数据存入AX中;

若是字数据相乘,则(AX)与OPS相乘得到双

字数据,高字存入DX、低字存入AX中。

»即字节乘法:(AL)*(OPS)—(AX),

字乘法:(AX)*(OPS)—(DX,AX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论