|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
答案:参考了shuiyu的答案:
al CF OF SF ZF PF
sub al,al 0 0 0 0 1 1
mov al,10h .. 0 0 0 1 1
add al,90h 0A0h 0 0 1 0 1
mov al,80h .. 0 0 1 0 1
add al,80h (1)00h 1 1 0 1 1
mov al,0FCh .. 1 1 0 1 1
add al,05h (1)01h 1 0 0 0 0
mov al,7D .. 1 0 0 0 0
add al,0Bh 88h 0 1 1 0 1
个人分析:
al , 进位,溢出,符号,零,奇偶
sub al,al 0 00011
mov al,10h 10h 00011 不影响
add al,90h A0h 00101
A0h=240d=10100000,
补码是负数,两个1
mov al,80h 80h 00101 不影响
add al,80h (1)00h 11011
mov al,0FCh .. 11011 不影响
add al,05h (1)01h 10000
负数+正数不可能溢出
mov al,7Dh .. 10000 不影响
add al,0Bh 88h 01101
125d+11d=136d=10001000b
正+正=负 溢出了,两个1
★溢出:对于N bit的数据 eg:8bit(以有符号数看待,即以补码看待)
设H=2^(N-1) eg:H为=128=80h
当运算结果超出-H~H-1 eg:-128~127
(即运算结果∈(-∞,-H)U[H,+∞) )
则为溢出
★判断运算结果是否溢出有一个简单的规则:
1两个正数相加(或正数减负数)得到负数或0,就是溢出
2两个负数相加(或负数减正数)得到正数或0,就是溢出
3 一个正数和一个负数相加不可能溢出
ps:对于8位数据,
00h~7Fh是正数(00h是0)
80h~FFh是负数
◆复习标志位
https://m.baidu.com/sf_edu_wenku/view/02cf5d7402768e9951e738cc
[0]CF CarryFlag 进位标志位
指令执行后是(CF为1)否(为0)进位或借位
(当程序员把该数据视做无符号数看待时,则需要关心CF标志位,因为进借位后会出错)
[2]PF 奇偶标志位
指令执行后结果以二进制表示,其中1的个数是(PF为1)否(为0)为偶数
[6]ZF 零标志位
指令执行后是(ZF为1)否(为0)为0
[7]SF 符号标志位
指令执行后是(SF为1)否(为0)为负
(结果以有符号方式(补码)看待)
[11]OF 溢出标志位
指令执行后是(OF为1)否(为0)溢出
(当程序员把该数据视做有符号数看待时,则需要关心OF标志位,因为溢出后会出错)
|
评分
-
查看全部评分
|