加法指令加法指令add一般格式: add dst,src指令与指令代码指令 指令代码ADD A, Rn O0101rrrADD A, direct 00100101 directADD A, @Ri O010011iADD A, #data 00100100 data功能:dst—dst+src,完成两个操作数相加,结果送至目的操作数dst,源操作数不变
对操作数的要求:两个操作数不能同时为存储器寻址方式
目的操作数:8位、16位或32位的寄存器、存储器操作数
源操作数:与目的操作数类型相同的寄存器、存储器或立即数操作数
如指令:add al,90h源操作数的寻址方式:有寄存器寻址、直接寻址、寄存器间接寻址、立即寻址
对标志位的影响 加法运算对程序状态字寄存器PSW的各标志位有一定的影响
①如果位7有进位输出,则CY =1,否则CY =0;②如果位3有进位输出,则AC =1,否则AC =0;③溢出标志位OV= C6①C7,如果位6有进位输出而位7没有或者位7有进位输出而位6没有,则OV =1,否则OV =0;④P标志位始终跟踪累加器Acc内1的个数,如果A中有奇数个1,则P=l
源操作数为立即数寻址,目的操作数为寄存器寻址
两个数相加后结果存放在目的操作数
假设指令执行前(a1)一82h,指令执行后(a1)一12h(82h+90h的结果),加的结果影响标志,使得进位标志CF一1(最高位有进位);溢出标志OF一1(结果的符号位变化了);零标志ZF:0(结果不为o);符号标志SF=0(结果的符号位为0);辅助进位标志AF一0(低4位没有进位);奇偶标志PF=1(结果的“1”的个数为偶数)
下面的指令都是正确的指令:add bx,[3000hi ; bx寄存器与有效地址为3000h单元内容相加add di,cx ;di寄存器与CX寄存器的内容相加add dx,[bx十sij;dx寄存器与存储单元内容相加add[si],dx ; 存储器操作数与寄存器dX相加add eax,Eesi] ; 存储器操作数与寄存器eax相加这些指令的运行结果都对标志CF、OF、PF、SF、ZF和AF产生影响
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。