二、分支結構
接上篇的順序結構彙編程序,接下來看一段分支結構程序。
比較兩個無符號數大小,將大數存入MAX單元
關鍵在於jnc branch這句,表示標誌位CF=0時轉移至branch。CF則是上一句的結果。CMP DEST,SRC比較命令,功能則是(DEST)-(SRC),不保留差,但保留ZF,CF,OF,SF等標誌位結果。若ZF=1,表示(DEST)=(SRC);對於無符號數,表示(DEST)≥(SRC);若CF=1,則(DEST)<(SRC);對於帶符號數,若OF=SF,表示(DEST)>(SRC);若OF≠SF,表示(DEST)<(SRC)。
將95和64存入數據段
較大數95爲第三個數
那麼,對於無符號數的情況呢?
需將jnc改爲jge,表示SF=OF OR ZF=1,即A≥B
結果較大數卻是64!爲什麼呢?
其實將95和64化成二進制數就明白了,在計算機裏的二進制數的第一位稱爲符號位,符號位爲0是正數,爲1是負數。