AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > 汇编语言

8086/8088指令系统

51自学网 http://www.51zixue.net

二、算术指令
1.加法指令
ADD(add)加法
ADC(add with carry)带进位加法
INC(increment)加1

.ADD  加法指令
格式:    ADD   DST,SRC
执行的操作:(DST)<-(SRC)+(DST)
.ADC  带进位加法指令
格式:    ADC   DST,SRC
执行的操作:(DST)<-(SRC)+(DST)+CF
.ADD  加1指令
格式:    INC   OPR
执行的操作:(OPR)<-(OPR)+1

2.减法指令
SUB(subtract)减法
SBB(subtract with borrow)带借位减法
DEC(Decrement)减1
NEG(Negate)求补
CMP(Compare)比较

.SUB  减法指令
格式:  SUB  DST,SRC
执行的操作:(DST)<-(DST)-(SRC)
.SBB  带借位减法指令
格式:  SBB  DST,SRC
执行的操作:(DST)<-(DST)-(SRC)-CF
.DEC  减1指令
格式:  DEC  OPR
执行的操作:(OPR)<-(OPR)-1
.NEG  求补指令
格式:  NEG  OPR
执行的操作:(OPR)<- -(OPR)
.CMP  比较指令
格式:  CMP  OPR1,OPR2
执行的操作:(OPR1)-(OPR2)
    该指令与SUB指令一样执行减法操作,但不保存结果,只是根据结果设置条件标志西半球.

3.乘法指令
MUL(Unsigned Multiple)无符号数乘法
IMUL(Signed Multiple)带符号数乘法

.MUL 无符号数乘法指令
格式:   MUL  SRC
执行的操作:
    字节操作数:(AX)<-(AL)*(SRC)
    字操作数:(DX,AX)<-(AX)*(SRC)
.IMUL 带符号数乘法指令
格式:   IMUL  SRC
执行的操作:与MUL相同,但必须是带符号数,而MUL是无符号数.

4.除法指令
DIV(Unsigned divide)无符号数除法
IDIV(Signed divide)带符号数除法

CBW(Convert byte to word)字节转换为字
CWD(Contert word to double word)字转换为双字

.DIV  无符号数除法指令
格式:   DIV  SRC
执行的操作:

  字节操作:(AL)<-(AX)/(SRC)的商
           (AH)<-(AX)/(SRC)的余数
  字操作:  (AX)<-(DX,AX)/(SRC)的商
           (AX)<-(DX,AX)/(SRC)的余数
.IDIV  带符号数除法指令
格式:   DIV  SRC
执行的操作:与DIV相同,但操作数必须是带符号数,商和余数也均为带符号数,且余数的符号与被除数的符号相同.
.CBW 字节转换为字指令
格式:   CBW
执行的操作:AL的内容符号扩展到AH.即如果(AL)的最高有效位为0,则(AH)=00;如(AL)的最高有效位为1,则(AH)=0FFH
.CWD 字转换为双字指令
格式:  CWD
执行的操作:AX的内容符号扩展到DX.即如(AX)的最高有效位为0,则(DX)=0;否则(DX)=0FFFFH.
    这两条指令都不影响条件码.


三、逻辑指令
1.逻辑运算指令
AND(and)          逻辑与
OR(or)           逻辑或
NOT(not)         逻辑非
XOR(exclusive or)异或
TEST(test)       测试
.AND  逻辑与指令
格式:    AND   DST,SRC
执行的操作:(DST)<-(DST)^(SRC)
.OR  逻辑或指令
格式:    OR   DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.NOT  逻辑非指令
格式:    NOT   OPR
执行的操作:(OPR)<-(OPR)
.XOR  异或指令
格式:    XOR   DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.TEST  测试指令
格式:    TEST   OPR1,OPR2
执行的操作:(DST)^(SRC)
两个操作数相
的结果不保存,只根据其特征置条件码

2.移位指令
SHL(shift logical left)          逻辑左移
SAL(shift arithmetic left)      算术左移
SHR(shift logical right)        逻辑右移
SAR(shift arithmetic right)     算术右移
ROL(Rotate left)                 循环左移
ROR(Rotate right)                循环右移
RCL(Rotate left through carry)  带进位循环左移
RCR(Rotate right through carry) 带进位循环右移
格式:    SHL  OPR,CNT(其余的类似)
其中OPR可以是除立即数以外的任何寻址方式.移位次数由CNT决定,CNT可以是
1CL.
    循环移位指令可以改变操作数中所有位的位置;移位指令则常常用来做乘以2除以2操作.其中算术移位指令适用于带符号数运算,SAL用来乘2,SAR用来除以2;而逻辑移位指令则用来无符号数运算,SHL用来乘2,SHR用来除以2.

 
 

上一篇:80386的异常类型  下一篇:内存管理和文件输入/输出