:TST、およびARMアセンブリでの操作。 LSBitだけが検討されるのはなぜですか? ARMアセンブリへの参照で
私は数が偶数か奇数であるかどうかを確認するためのテストコードの次の行でTST操作に関するいくつかの混乱を持っている:
mov R0, #167
TST R0, #1 //AND operation
addeq ... //add if even
addne ... //add if not even
である理由私の質問があります番号が偶数であるかどうかを判断するために最下位ビット(LSB)のみを考慮し、#167(LSBの0111を有する)の残りのビットを見ないことを考慮してTSt動作を実行する。
TST 167,1 AND 167と1はAND LSB(0111と0001)になりますが、LSBはAND 1になりますがANDingしません2番目のLSBがTST動作の出力を0にしますか?
"1"の他のすべてのビットがゼロであるため、R0_cannot_の非LSBが結果に影響するため、R0の(単一の)LSBのみがテストされます。 – barny
'0x000000a7&0x00000001 == 0x00000001(!= 0) ' - それがすべてです。私はここに尋ねられているものの前提を理解していません.../ – Notlikethat
"なぜLSBitだけが考慮されるのですか?":これはパリティビットなのでです。 –