
标志寄存器psw中cf、of的.ppt
17页标志寄存器(FLAGS)中CF、OF的判断,主讲人:杨慧丽,教学目的:,1、进一步熟悉FLAGS中的9个标志位; 2、理解溢出的两种不同含义; 3、熟练掌握加、减法及逻辑指令中对CF、 OF的判断; 4、了解乘法中对CF、OF的判断;,重点及难点:,在加、减、乘法运算中,对CF、OF的判断 从十进度角度理解溢出的两种不同含义,教具及主要教学手段:,多媒体讲述法,教学内容及过程:,8086CPU的标志寄存器FLAGS中,含有9个标志,其中包括6个状态标志和3个控制标志,每个标志占1位,这些标志用来表示CPU当前的操作方式和状态信息 15 12 11 10 9 8 7 6 5 4 3 2 1 0,进位标志位CF(Carry Flag),当运算结果的最高位发生进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0 表示无符号数溢出,即运算结果超出了无符号数的表示范围n位二进制数表示的无符号数范围为0~2n-1溢出标志位OF(Overflow Flag),若算术运算的结果有溢出,则OF=1;否则OF=0. 表示有符号数溢出,即运算结果超出了有符号数的表示范围n位二进制数表示的有符号数范围为-2n-1~2n-1-1。
CF和OF的判断方法:,1、加法: CF:十进制角度作为n位无符号数,若加法的结果 >2n-1,则CF=1,否则CF=0 二进制角度若结果的最高位向前有进位,则CF=1,否则CF=0 OF:十进制角度作为n位有符号数,若加法的结果不在-2n-1~2n-1-1范围之内,则OF=1,否则OF=0. 二进制角度若两个数同号,而相加结果与之异号,则说明溢出,OF=1,否则OF=0.,,,请看例题1,例题1:,8位二进制加法,判断CF和OF 2H+7FH,,0 0 0 0 0 0 1 0 + 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 CF=0,OF=1,,看作无符号数 2 + 1 2 7 1 2 9 不溢出,,看作有符号数 2 + 1 2 7 1 2 9 溢 出,,例题2:,8位二进制加法,判断CF和OF 86H+0F5H,,1 0 0 0 0 1 1 0 + 1 1 1 1 0 1 0 1 1↖0 1 1 1 1 0 1 1 CF=1,OF=1,,看作无符号数 1 3 4 + 2 4 5 3 7 9 溢 出,,看作有符号数 -1 2 2 + -1 1 -1 3 3 溢 出,,CF和OF的判断方法:,1、减法: CF:十进制角度。
作为n位无符号数,若减数大于被减数,则CF=1,否则CF=0 二进制角度若减法时最高位向前有借位,则CF=1,否则CF=0 OF:十进制角度作为n位有符号数,若减法的结果不在-2n-1~2n-1-1范围之内,则OF=1,否则OF=0. 二进制角度若两个数异号,而减法的结果与减数符号相同,则说明溢出,OF=1,否则OF=0.,,,请看例题3,例题3:,8位二进制减法,判断CF和OF 81H—3H,,1 0 0 0 0 0 0 1 — 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 CF=0,OF=1,,看作无符号数 1 2 9 — 3 1 2 6 不溢出,,看作有符号数 - 1 2 7 — 3 - 1 3 0 溢 出,,例题4:,8位二进制减法,判断CF和OF 7FH-0FDH,,0 1 1 1 1 1 1 1 — 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 CF=1,OF=1,,看作无符号数 1 2 7 — 2 5 3 1 3 0 溢 出,,看作有符号数 1 2 7 — - 3 1 3 0 溢 出,,练习:,8位二进制加、减法,判断CF和OF 3H+0FEH 2-3,,0 0 0 0 0 0 1 1 + 1 1 1 1 1 1 1 0 1↖ 0 0 0 0 0 0 0 1 CF=1,OF=0,,,,0 0 0 0 0 0 1 0 ﹣ 0 0 0 0 0 0 1 1 1↖1 1 1 1 1 1 1 1 CF=1,OF=0,课后小结:,1、进位标志CF和溢出标志OF是两个意义不同的标志 2、进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确; 3、溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。
作业:,给出下列8位数运算后,CF、OF的值 80H+80H 0F9H+02H 80H-21H 35H-0A5H,完,,Thank you very much!,。
