(1)ADD指令
格式:ADD DST,SRC
该指令把源操作数(SRC)指向的数据与目的操作数(DST)相加后,将结果放到目的操作数(DST)中,所执行的操作:(DST)ß(SRC)+(DST)
SRC和DST不能同时为存储器操作数和段寄存器,同时SRC和DST的数据类型要匹配,要同是字节或字。受影响的标志位有:OF,SF,ZF,AF,PF,CF。
(2)ADC指令
格式:ADC DST,SRC
所执行的操作:(DST)ß(SRC)+(DST)+CF 了解清楚进位是怎样加的
该指令把两个操作数(SRC和DST)相加以后,再加上进位标志CF,将结果放到目的操作数(DST)中。受影响的标志位有:OF,SF,ZF,AF,PF,CF。ADC指令多用于多精度数据相加。
2、二进制减法基本指令
(1)SUB指令
格式:SUB DST,SRC
所执行的操作:(DST)ß (DST)-(SRC)
该指令把源操作数(SRC)指向的数据与目的操作数(DST)相减后,将结果放到目的操作数(DST)中,SRC和DST不能同时为存储器操作数和段寄存器(,同时SRC和DST的数据类型要匹配,要同是字节或字。受影响的标志位有:OF,SF,ZF,AF,PF,CF。
(2)SBB指令
格式:SBB DST,SRC
(DST)ß (DST)-(SRC)-CF 了解清楚进位是怎样减的
该指令把两个操作数(SRC和DST)相减以后,再减去CF,将结果放到目的操作数(DST)中。受影响的标志位有:OF,SF,ZF,AF,PF,CF。SBB指令多用于多精度数据相加。
我解释一下:不同的编译系统最大值不一样,你说的是Turbo
C
2.0的编译系统!除过前面的一个0是说明它是正数,其它15位都是用来存放数值的,这个意思就是说这个编译系统最大的数不能超过2的15次方减1,即最大值可以表示为0111111111111111,它相当于十进制的32767,实际上使用整数往往超过32767,显然两个字节也存放不下(一个字节为8位,两个字节为16位),因此有的C语言编译系统(如Visual
C++
)以四个字节表示一个整数,即(32位),这时,它的最大值是31个(前面一位说明它是正数,所以是31位)二进制的值都是1,即2的31次方减1,约为21亿,一般情况都可以满足使用要求了。
很详细了!希望能得到分!