微机原理int 03h指令
加法指令
ADD,ADC指令、INC指令、DAA,AAAA指令减法指令
SUB,SBB指令、DEC指令、DAS,AAS指令
NEG指令、CMP指令
乘法指令
MUL,IMUL指令、AAM指令除法指令
DIV,IDIV指令、AAD指令
加法指令--ADD指令特点
不带进位的加法指令指令格式
ADDdst,src;dst←dst+src指令功能
用于多位数的个位数相加
加法指令--ADC指令特点
带进位的加法指令指令格式
ADCdst,src;dst←dst+src+CF指令功能
用于多位数的非个位数相加
INC--加1指令指令格式
INCoprd;oprd←oprd+1
指令功能
多用于循环程序中的地址指针加1
影响的标志(不影响的标志)
OF、SF、ZF、PF、AF(CF)
允许的操作数reg、mem
SUB、SBB、DEC--减法指令不带借位的减法指令
SUBdst,src;dst←dst-src
带借位的减法指令
SBBdst,src;dst←dst-src-cF
减1指令
DECsrc;src←src-1
NEG--求补指令指令格式
NEGoprd;oprd←0-oprd
指令功能
对操作数oprd求补指令应用
完成(AX)=100-(AX)
NEGAX;(AX)=0-(AX)
ADDAX,100H;(AX)=0-(AX)+100
=100-(AX)
CMP--比较指令指令格式
CMPdst,src;dst-src
指令功能
/CMP指令与SUB指令的相同点:
完成目的操作数dst减源操作数src
√CMP指令与SUB指令的不同点:
SUB的差放入dst、CMP的差仅影响标志
指令操作数
CMPreg,imm、CMPreg,reg。CMPreg,mem指令应用
CMP用于条件判断指令前,根据标志改变程序流程
乘法指令中的专用寄存器
寄存器的使用原则
被乘数专用寄存器AL(8位)或AX(16位)积专用寄存器AX(16位)或DX:AX(32位)
积、被乘数、乘数的数据类型
积(16位)=被乘数(8位)*乘数(8位)积(32位)=被乘数(16位)*乘数(16位)
MUL--无符号数乘法指令指令格式MULsrc;(AX)←(AL)*src(8位乘数;(DX)、(AX)←(AX)*src(16位乘数)指令特点
MUL指令仅显示给出乘数源操作数src
MUL指令目的操作数根据src的数据类型而定√若src为8位乘数,则被乘数为AL,积为AX,若src为16位乘数,则被乘数为AX,积为DX:AX算术运算--乘、除法类指令
AAM--非组合十进制数乘法调整指令应用条件
比较指令cmp怎么用仅用于无符号乘法指令MUL中的8*8模式指令格式
AAM;(AH)←(AX)/10调整后的商→AH
;(AL)←(AX)%10调整后的余→AL
指令功能
将积(AX)中的真实值调整为用非组合BCD表示的数
除法指令中的专用寄存器商、被除数、除数的数据类型
商(8位)=被除数(16位)/除数(8位)商(16位)=被除数(32位)/除数(16位)·寄存器的使用原则
8位=16位/8位模式
商寄存器为(AL)、(AH)被除数寄存器为(AX)
16位=32位/16位模式
商寄存器为(AX)、(DX)
被除数寄存器为(DX)、(AX)