检测点11.2作业练习
CF 标志(第0位)进位标志位;
当两个无符号数据相加需要进位时,即CF为1;
当两个无符号数据相减需要借位时,即CF为1;
OF 标志(第11位)
溢出标志位,指定数据范围:8位有符号数据(-128~127),16位有符号数据(-32768~32767)
当两个有符号数据相加溢出时,即OF为1;
当两个有符号数据相减溢出时,即OF为1;
SF 标志(第7位)
结果为负,SF=1;结果为正,SF=0;
ZF 标志(第6位)
如果0,ZF=1;如果1,ZF=0;
PF 标志(第2位)
结果偶数1,PF=1;结果基数1,PF=0;
写出下面每条指令执行后,ZF、PF、SF、CF、OF 等标志位的值。
CF OF SF ZF PF
sub al,al 0 0 0 1 1
mov al,10h 0 0 0 1 0
add al,90h 0 0 1 0 1
mov al,80h 0 0 1 0 1
add al,80h 1 1 0 1 0
mov al,0fch 1 1 0 1 1
add al,05h 1 0 0 0 0
mov al,7dh 1 0 0 0 0
add al,0bh 0 1 1 0 1 mov不是计算指令吧?应该不改变标志寄存器的呀 怎么判断是有符号还是无符号运算呢
文小诗 发表于 2020-4-11 12:54
怎么判断是有符号还是无符号运算呢
对同一个二进制数据,计算机可以把它当作有符号数来计算,也可以当作无符号数来计算。如果不发生进位和溢出,那么计算结果就是统一的。不管我们如何看待,CPU在计算的时候就自动包含了这两种含义。所以关键在于我们的程序需要哪种结果。
页:
[1]