[解答]第二章第9題 給泓諾的~
第2章第9題詳解(很難沒一定水平的請勿看下去,這會花掉妳很多時間)
80X86 CPU 的 Overflow 狀態旗標是來指示有號數運算的結果是否有溢位。
硬體的運算法則並非由 80X86 所訂定,而是依照二進位有號數加法的理論完成的。在以8位元(=1 BYTE)所表示的有號數中,位元7(MSB)代表的是正負號,0代表正數、1代表負數,位元6~0代表大小,正數以二進位制方式表示,負數以二進位制的補數表示,因此8位元可以描述負128到正127之間的數值。
當兩8位元的有號數相加的結果有"溢位"就代表相加的結果比-128還小或比+127還大。所以,如果一正數與一負數相加,不管如何絕對不會溢位;如果兩正數相加,其結果仍然應該是正數,如果兩負數相加,其結果扔然應該是負數。如果不是,那就表示發生溢位了,80x86會設定溢位狀態旗標!
1)7FH+FFH
0111 1111
1111 1111
7F+FF=7E, 正數+負數, 絕不會溢位, 應設定 Overflow=0
2)7FH+B9H
0111 1111
1011 1001
7F+B9=38, 正數+負數, 絕不會溢位, 應設定 Overflow=0
3)72H+55H
0111 0010
0101 0101
72+55=C7, 正數+正數=負數, 正負號反轉, 代表溢位,應設定 Overflow=1
4)BFH+CFH
1011 1111
1100 1111
BF+CF=8E, 負數+負數=負數, 正負號相同, 沒有溢位,應設定 Overflow=0
我最近狂發廢文誒~不知道有沒有機會當選廢文王??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.51.139
推
04/19 04:23, , 1F
04/19 04:23, 1F
推
04/19 09:04, , 2F
04/19 09:04, 2F
推
04/19 11:43, , 3F
04/19 11:43, 3F
推
04/19 12:29, , 4F
04/19 12:29, 4F