CF和OF的區別


進位標志CF和溢出標志OF的區別:

有符號數和無符號數只是認為的進行區分,計算機從來不區分有符號數和無符號數。對於運算的數來說,只要符合進位的情況,CF就置1.只要符合溢出的情況,OF就置1.但是后續的進行的一些數值判斷等操作,無符號數多依據CF標志進行,有符號數多依據OF標志進行。如比較兩個數的大小,無符號數根據CF標志進行,有符號數依據OF標志進行。

 

•    計算機硬件判斷溢出的方法如下:
    最高位有進位但次高位沒有進位,或者最高位無進位但次高位有進位;也就是最高位和次高位一個有進位一個無進位。(最高位和次高位進位不一致的時候溢出)

•    我們不是機器不使用這么機械的方法,可以使用如下規則(匯編教材第二版第19頁):
    只有當兩個相同符號數相加(含兩個不同符號數相減),而運算結果的符號與原數據符號相反時,產生溢出。

•    例如:3AH+7CH=00111010B+01111100B=10110110B=B6H
    次高位一個是0一個是1,但還有一個低位進位1,所以次高位有進位;最高位兩個0,還有次高位進位,結果只是1沒有進位,所以計算機判斷有溢出。
    我們判斷,看最高位,兩個數最高位相同為0,相加后結果最高位為1,所以有溢出。

    再如:3AH+8DH,我們可以馬上判斷出沒有溢出。因為這是兩個不同符號數相加。

    利用調試程序可以幫助你驗證。

    將數據按有符號數進行補碼變換求出對應十進制真值,然后判斷也可以,但比較麻煩,不如上述規則簡單明了

 

參考資料:

http://www5.zzu.edu.cn/qwfw/ynjd/clqjg/4a44c05f3f5a870e013f6424857a043d.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM