接續昨天的話題,繼續來探討 condition code
昨天說到了指令的運算結果會有改變 condition code
而今天就來說其中兩個會影響 condition code 的 instruction
以及說明 condition code 被改變之後,又要如何使用他
以 x86-64 的架構為例
instruction | based on | description
---+---+---CMP S1, S2
| S2 - S1 | CompareTEST S1, S2
| S1 & S2 | Test
其中 CMP
又可以有 cmpb
, cmpw
, cmpl
, cmpq
, 這四種變形
分別對應 byte(8-bit), word(16-bit), double word(32-bit), quad word(64-bit) 的版本
同理,TEST
也有 testb
, testw
, testl
, testq
,這四種變形
同樣分別對應 byte(8-bit), word(16-bit), double word(32-bit), quad word(64-bit) 的版本
condition code 有以下幾種功能:
jump
(用這個特性可以實作出 C 語言中的 if
)而具體對應到哪些 instruction 就留到後面幾天再說好了