iT邦幫忙

0

旗標功能

smit 2016-08-18 14:16:165945 瀏覽
  • 分享至 

  • xImage

不好意思 我想請問一下 旗標這個功能是在做什麼的
又要怎麼使用呢?
我有看一些文章 可是看不太懂

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2016-08-18 14:30:30 檢舉
旗標暫存器?
smit iT邦新手 5 級 ‧ 2016-08-18 14:49:04 檢舉
fillano iT邦超人 1 級 ‧ 2016-08-18 17:27:50 檢舉
什麼地方不懂?
smit iT邦新手 5 級 ‧ 2016-08-19 10:07:39 檢舉
我不知道該怎麼去使用他,我現在在實習當中,工程師提示我這個可以幫助我達成我的目標,可是完全沒有頭緒...
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
fillano
iT邦超人 1 級 ‧ 2016-08-19 12:04:40
最佳解答

先確認一下,你說的是x86架構的cpu?

先參考wiki大神

他每一個位元代表一種狀態,各自用法也不同。

例如zero flag會在計算結果是零時被設定,計算完畢之後jnz時,你不必去確認結果,他自己會去判斷結果是否為零,然後結果不為零時就jump。

(話說組語快忘光了,講的不知道有沒有錯XD)

WilliamHuang
iT邦研究生 1 級 ‧ 2016-08-18 22:13:01
【**此則訊息已被站方移除**】
0
ttii
iT邦新手 5 級 ‧ 2017-06-10 21:27:35

旗標暫存器 存放了 運算指令的副產物
例如 加法指令 add eax ebx
不過就是把 eax+ebx的值存回到eax上, 結果ebx沒變, eax變成新的值了
那副產物是什麼呢?
想一想兩個值相加會不會爆掉(溢位)? eax的值最大只能放0xFFFFFFFF(ebx也是)
所以eax+ebx爆掉後, 要如何知道? 答案就在 旗標暫存器內的溢位旗標(CF)
除了溢位旗標, 還有零旗標(ZF)
因為寫程式, 經常在判斷是否為0, 所以藉由判斷ZF很好用
還有很多好用的旗標(SF,OF), 也有很雞肋的旗標如(PF,AF)
也有與運算副產物無關的旗標(DF,IF,DF)

我要發表回答

立即登入回答