汇编语言指令大全.docx

上传人:b****5 文档编号:2800129 上传时间:2022-11-15 格式:DOCX 页数:42 大小:30.12KB
下载 相关 举报
汇编语言指令大全.docx_第1页
第1页 / 共42页
汇编语言指令大全.docx_第2页
第2页 / 共42页
汇编语言指令大全.docx_第3页
第3页 / 共42页
汇编语言指令大全.docx_第4页
第4页 / 共42页
汇编语言指令大全.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

汇编语言指令大全.docx

《汇编语言指令大全.docx》由会员分享,可在线阅读,更多相关《汇编语言指令大全.docx(42页珍藏版)》请在冰豆网上搜索。

汇编语言指令大全.docx

汇编语言指令大全

AAA

未组合的十进制加法调整指令AAA(ASCIIAdgustforAddition)

格式:

AAA

功能:

对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中.

说明:

1.组合的十进制数和未组合的十进制数:

在计算中,十进制数可用四位二进制数编码,称为BCD码.

当一个节(8位)中存放一位BCD码,且放在字节的低4位,高4位为时称为未组合的BCD码.

2.AAA的调整操作

若(AL)and0FH>9或AF=1,则调整如下:

(AL)<--(AL)+6,(AH)<--(AH)+1,AF=1,CF<--AF,(AL)<--(AL)and0FH

AAD

未组合十进制数除法调整指令AAD(ASCIIAdjustforDivision)

格式:

AAD

功能:

在除法指令前对AX中的两个未组合十进制数进行调整,以便能用DIV指令实现两个未组合的十进制数的除法运算,其结果为未组合的十进制数,商(在AL中)和余数(在AH中).

说明:

1.AAD指令是在执行除法DIV之前使用的,以便得到二进制结果存于AL中,然后除以OPRD,得到的商在AL中,余数在AH中.

2.示例:

MOVBL,5

MOVAX,0308H

AAD;(AL)<--1EH+08H=26H,(AH)<--0

DIVBL;商=07H-->(AL),余数=03H-->(AH).

AAM

未组合十进制数乘法调整指令AAM(ASCIIAdjustMULtiply)

格式:

AAM

功能:

对两个未组合的十进制数相乘后存于AX中的结果进行调整,产生一个未组合的十进制数存在AL中.

说明:

1.实际上是两个未组合的十进制数字节相乘,一个0~9的数与另一个0~9的数相乘其积最大为81.为了得到正确的结果,应进行如下调整:

乘积:

(AH)<--(AL)/10

(AL)<--(AL)MOD10

2.本指令应跟在MUL指令后使用,乘积的两位十进制结果,高位放在AH中,低位放在AL中.AH内容是MUL指令的结果被10除的商,即(AL)/10,而最后的AL内容是乘积被10整除的余数(即个位数).

AAS

未组合十进制减法调整指令AAS(ASCIIAdjustforSubtraction)

格式:

AAS

功能:

对两个未组合十进制数相减后存于AL中的结果进行调整,调整后产生一个未组合的十进制数数且仍存于AL中.

说明:

1.本指令影响标志位CF及AF.

2.调整操作

若(AL)and0FH>9或AF=1

则(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL)and0FH,

否则(AL)<--(AL)and0FH

ADC

带进位加法指令ADC(AdditionCarry)

格式:

ADCOPRD1,OPRD2

功能:

OPRD1<--OPRD1+OPRD2+CF

说明:

1.OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数.

OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.

2.OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数.

3.加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.

4.该指令对标志位的影响同ADD指令.

ADD

加法指令ADD(Addition)

格式:

ADDOPRD1,OPRD2

功能:

两数相加

说明:

1.OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数.

OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.

2.OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数.

3.加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.加法指令适用于无符号数或有符号数的加法运算.

AND

逻辑与运算指令AND

格式:

ANDOPRD1,OPRD2

功能:

对两个操作数实现按位逻辑与运算,结果送至目的操作数.本指令可以进行字节或字的‘与’运算,

OPRD1<--OPRD1andOPRD2.

说明:

1.目的操作数OPRD1为任一通用寄存器或存储器操作数.源操作数OPRD2为立即数,任一通用寄存器或存储器操作数.

2.示例:

ANDAL,0FH;(AL)<--(AL)AND0FH

ANDAX,BX;(AX)<--(AX)AND(BX)

ANDDX,BUFFER[SI+BX]

ANDBETA[BX],00FFH

注意:

两数相与,有一个数假则值为假

CALL

过程调用指令CALL

格式:

CALLOPRD

功能:

过程调用指令

说明:

1.其中OPRD为过程的目的地址.

2.过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种.

3.本指令不影响标志位.

CBW

字节扩展指令CBW(ConvertBytetoWord)

格式:

CBW

功能:

将字节扩展为字,即把AL寄存器的符号位扩展到AH中.

说明:

1.两个字节相除时,先使用本指令形成一个双字节长的被除数.

2.本指令不影响标志位.

3.示例:

MOVAL,25

CBWIDIVBYTEPTRDATA1

CLC

处理器控制指令-标志位操作指令

格式:

CLC;置CF=0

STC;置CF=1

CMC;置CF=(NotCF)进位标志求反

CLD;置DF=0

STD;置DF=1

CLI;置IF=0,CPU禁止响应外部中断

STI;置IF=1使CPU允许向应外部中断

功能:

完成对标志位的置位、复位等操作.

说明:

例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

CLD

处理器控制指令-标志位操作指令

格式:

CLC;置CF=0

STC;置CF=1

CMC;置CF=(NotCF)进位标志求反

CLD;置DF=0

STD;置DF=1

CLI;置IF=0,CPU禁止响应外部中断

STI;置IF=1使CPU允许向应外部中断

功能:

完成对标志位的置位、复位等操作.

说明:

例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

CLI

处理器控制指令-标志位操作指令

格式:

CLC;置CF=0

STC;置CF=1

CMC;置CF=(NotCF)进位标志求反

CLD;置DF=0

STD;置DF=1

CLI;置IF=0,CPU禁止响应外部中断

STI;置IF=1使CPU允许向应外部中断

功能:

完成对标志位置位、复位等操作.

说明:

例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

CMC

处理器控制指令-标志位操作指令

格式:

CLC;置CF=0

STC;置CF=1

CMC;置CF=(NotCF)进位标志求反

CLD;置DF=0

STD;置DF=1

CLI;置IF=0,CPU禁止响应外部中断

STI;置IF=1使CPU允许向应外部中断

功能:

完成对标志位的置位、复位等操作.

说明:

例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.

CMP

比效指令CMP(CoMPare)

格式:

CMPOPRD1,OPRD2

功能:

对两数进行相减,进行比较.

说明:

1.OPRD1为任意通用寄存器或存储器操作数.

OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.

2.对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,而只是比较.

3.在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令.

CMPS

字符串比较指令

格式:

CMPSOPRD1,OPRD2

CMPSB

CMPSW

功能:

由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.

同时SI,DI将自动调整.

说明:

1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.

2.本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.

3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.

CMPSB

字符串比较指令

格式:

CMPSOPRD1,OPRD2

CMPSB

CMPSW

功能:

由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.

同时SI,DI将自动调整.

说明:

1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.

2.本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.

3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较

CMPSW

字符串比较指令

格式:

CMPSOPRD1,OPRD2

CMPSB

CMPSW

功能:

由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.

同时SI,DI将自动调整.

说明:

1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.

2.本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.

3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.

CWD

字扩展指令CWD(ConvertWordtoDoubleWord)

格式:

CWD

功能:

将字扩展为双字长,即把AX寄存器的符号位扩展到DX中.

说明:

1.两个字或字节相除时,先用本指令形成一个双字长的的被除数.

2.本指令不影响标志位.

3.示例:

在B1、B2、B3字节类型变量中,分别存有8们带符号数a、b、c,实现(a*b+c)/a运算。

DAA

组合的十进制加法调整指令DAA(DecimalAdjustforAddition)

格式:

DAA

功能:

对AL中的两个组合进制数相加的结果进行调整,调整结果仍放在AL中,进位标志放在CF中.

说明:

1.调整操作如下

(1)若(AL)and0FH>9或AF=1,则(AL)<--(AL)+6,AF<--1,对低四位的调整.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1