算术运算类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例6.13(2)
0000 1101B + 0111 1001B
1000 0110B
CF=0,OF=1(13+121=134), ZF=0,SF=1,PF=0
例6.13
例6.13(3)
0000 1001B - 0000 0110B CF=0,OF=0(9-6=3),ZF=0,
0000 0011B SF=0,PF=1
奇偶标志PF(Parity Flag)
➢ 当运算结果最低字节中“1”的个数为零或偶 数时,PF = 1;否则PF = 0
PF标志仅反映最低8位中“1”的个数 是偶或奇,即使是进行16位字操作
3AH + 7CH=B6H=10110110B 结果中有5个1,是奇数:PF = 0
5. 溢出标志OF(Overflow Flag)
dec cx dec word ptr [si]
•n位2进制数可表示的无符号数范围:0-2n-1 •n位2进制补码表示的带符号数范围:- 2n-1- 2n-1-1
5. 溢出标志OF(Overflow Flag)
➢ 从十进制的角度来判断,若带符号数 的运算结果超出了补码表示的范围,则 OF=1,否则OF=0。n位二进制带符号 数的补码表示范围为-2n-1--2n-1-1。
6.2 算术运算类
➢加法指令 ➢减法指令 ➢乘法指令 ➢除法指令 ➢符号扩展
6.1 状态标志
➢注意:二进制数运算! ➢CF ➢OF ➢ZF ➢SF ➢PF
1. 进位标志CF(Carry Flag)
➢ 当运算结果的最高有效位有进位(加法)或 借位(减法)时,进位标志置1,即CF = 1; 否则CF = 0。
➢ 功能:源操作数Src和目的操作数Dest相加,结果送到 Dest。
➢ 语法格式 ADD Reg/Mem,Reg/Mem/Imm
2. 带进位加法指令ADC
➢ ADC指令的格式 ADC Dest,Src ;DestDest+Src+CF
➢ 功能:源操作数Src、目的操作数Dest以及 CF相加,结果送到Dest。
➢从二进制的角度来判断,若两个数同号 ,而相加结果与之异号,或者两个数异 号,相减结果与被减数符号相反,则 OF=1;其他情况OF=0。
例6.13(1) 0000 0110B
+ 0000 1001B CF=0,OF=0(6+9=15), 0000 1111B ZF=0,SF=0,PF=1
例6.13
➢ 若算术运算的结果有溢出,则OF=1; 否则 OF=0
3AH + 7CH=B6H=182 ,产生溢出:OF = 1 AAH + 7CH=(1)26H=38,没有溢出:OF = 0
什么是溢出
➢ 处理器内部以补码表示有符号数 ➢ 8位表达的整数范围是:+127~-128 ➢ 16位表达的范围是:+32767~-32768 ➢ 如果运算结果超出这个范围,就产生了溢出 ➢ 有溢出,说明有符号数的运算结果不正确
➢ 语法格式 SUB Reg/Mem,Reg/Mem/Imm
➢ 对标志位的影响:按状态标志的定义设置CF、OF 、SF和ZF。
2. 带借位减法指令SBB
➢ SBB指令的格式 SBB Dest,Src ;DestDest-Src-CF
➢ 功能:目的操作数Dest减去源操作数Src及 CF,结果送到Dest。
的影响同ADD。
inc bx inc byte ptr [bx]
6.2.3 减法运算
➢ SUB指令 ➢ SBB指令 ➢ DEC指令 ➢ NEG指令 ➢ CMP指令
ቤተ መጻሕፍቲ ባይዱ
6.2.3 减法指令
1. 减法指令SUB
➢ SUB指令的格式 SUB Dest,Src ;DestDest-Src
➢ 功能:目的操作数Dest减去源操作数Src及CF, 结果送到Dest。
➢ 语法格式 SBB Reg/Mem,Reg/Mem/Imm,同SUB
➢ 对标志位的影响:同SUB
3. 减量指令DEC(decrement)
➢ DEC指令的格式 DEC Dest ;DestDest-1
➢ 功能:目的操作数Dest减1,结果送到Dest。 ➢ 语法格式
DEC Reg/Mem ➢ 对标志位的影响:不影响CF,其他同SUB。
➢ 语法格式 ADC Reg/Mem,Reg/Mem/Imm,同ADD
➢ 对标志位的影响:同ADD
3. 增量指令INC(increment)
➢ INC指令的格式 INC Dest ;DestDest+1
➢ 功能:将目的操作数Dest加1,结果送到Dest。 ➢ 语法格式
INC Reg/Mem ➢ 对标志位的影响:不影响CF,对其他状态标志位
例6.13(3)
例6.13(4)
1000 0000B - 0000 0001B
0111 1111B
CF=0,OF=1(-128-1=-129), ZF=0,SF=0,PF=0
例6.13(4)
算术运算类指令
➢ 四则运算是计算机经常进行的一种操作。算 术运算指令实现二进制(和十进制)数据的 四则运算
➢ 请注意算术运算类指令对标志的影响 掌握:ADD/ADC/INC、SUB/SBB/DEC/ NEG/CMP 熟悉:MUL/IMUL、DIV/IDIV 理解:CBW/CWD
6.2.2 加法运算
➢ ADD指令 ➢ ADC指令 ➢ INC指令
1. 加法指令ADD
➢ ADD指令的格式 ADD Dest,Src ;DestDest+Src
3AH + 7CH=B6H,没有进位:CF = 0 AAH + 7CH=(1)26H,有进位:CF = 1
2. 零标志ZF(Zero Flag)
➢ 若运算结果为0,则ZF = 1; 否则ZF = 0
注意:ZF为1表示的结果是0
3AH + 7CH=B6H,结果不是0:ZF = 0 84H + 7CH=(1)00H,结果是0:ZF = 1
3. 符号标志SF(Sign Flag)
➢运算结果最高位为1,则SF = 1;否则 SF = 0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
3AH + 7CH=B6H=1011 0110B,最高位D7=1: SF = 1
84H + 7CH=(1)00H=0000 0000B,最高位D7 =0:SF = 0
相关文档
最新文档