在小木偶前輩的http://home.educities.edu.tw/wanker742126/附錄二 80x86 及 80x87 暫存器,很多組合語言書都提到,各式各樣的暫存器,
因為CPU就是這樣設計,這個中央處理器,是以INTEL為為主的產品壟斷市場,
而AMD的CPU始終在突破市場,按小木偶前輩查維基及一些網路歷史,
這場戰役很多就展開了,我的ACER小桌機就是用AMD K7的CPU。
而暫存器放在CPU裏,指令寫入記憶體裏,
Q1:請問暫存器的長度是一樣的嗎?不一樣的話,各是多長呢?
這種問題,出題的人很差,這個時代,只要GOOGLE一下就有了。
Q2:請問最短的暫存器是那些呢?
以長度來看,可能是這些旗標。
而在日常生活的TIPTOP GP程式維護,很多表單的TABLE裏,都會設計有狀態碼,
如未確認(N),己確認(Y),簽核中(S),作廢(X)。
還會多組狀態碼,一個欄位放有效性,一個欄位放簽核流程,一個欄位放交易別。
多組狀態組合起來,各有各的細微處理。
看起來CPU也是這個道理。
看一下,DEBUG下r參數裏的旗標暫存器
NV UP EI PL NZ NA PO NC
溢位旗標,可能的值NV/OV**(NOT OVERFLOW/OVERFLOW)**
方向旗標,可能的值UP/DN (UP/DOWN)
中斷旗標,可能的值EI/DI**(ENABLE/DISABLE)**
符號旗標,可能的值PL/NG**(PLUS/NEGATIVE)**
零旗標,可能的值NZ/ZR**(NOT ZERO/ZERO)**
輔助進位旗標,可能的值AC/NA**(AuxiliaryCarry/Not)**
同位旗標,可能的值PE/PO**(parity Even/parity Odd)**
進位旗標,可能的值CY/NC**(CARRY/Not)**
括號內的英文字,是筆者自己想的,助憶的英文字。
昨天在暫存器裏,用5減6減1加2,這個小學生算術,對電腦來說有點困難(它會感覺困難嗎?它又沒有感覺!!)
dx 暫存器變化,DX=0005->00FF ->00FE->0000
NV UP EI PL NZ NA PO NC
NV UP EI NG NZ AC PE CY
NV UP EI NG NZ NA PO NC
NV UP EI PL ZR AC PE CY
結果是正確的,用FF表示-1, FE表示-2,
可能解答了你的疑惑,
FF如果是-1,那255(FF)用什麼表示,所以FF且配合符號旗標的NG,表示是負1。
同理FE且配合符號旗標的NG,表示是負2。
零算正數,符號旗標是PL。
零的旗標,ZR。
------------
比較特別的是,正轉負/負轉正的時候,發生進位,進位旗標NC->CY,
輔助進位旗標也觸動。
------------
以同位旗標來說,
按小木偶網頁的說明:運算的結果換成二進位後,最低的 8 個位元中,若有偶數個 1,則此位元設為 1,反之為 0。
16位數的0,2進位的0->00000000, 0個1,偶數個1,所以是PE(EVEN).
再測一個數字5,2進位是00000101,這個有問題,偶數個1,想不通。
FF:1 11111111, 8個1,正確,PE。
FE:1 11111110, 7個1,正確,PO。
夫人(IT邦的用法是皇后)參加完同學聚會(東海EMBA)後,還意猶未盡的上來找我聊天,
而今天我因為背痛,莫名的痛,先上床睡到10點,再起來鐵人文,
一邊寫文,一邊和她聊天,
數字5,2進位是00000101,這個有問題,偶數個1,想不通。
一邊在想偶數(EVEN)個1,一邊和她聊天,聊她同學的八卦。
不敢不認真的回她話,以免激怒了她。40歲的男人,不想靠一張嘴,想動點腦的時候,還會有狀況!!
timloo提到:
上來找我聊天
都已經背痛了,Tim大還能讓她在“上面”跟您聊天....莫非是另類“治療”?