HIGH / LOW 演算子

構文    HIGH  <定数式>    ; 上位 8 ビット
    LOW   <定数式>    ; 下位 8 ビット

HIGH 演算子は、<定数式>の上位 8 ビットのみを残し、下位 8 ビットを 0 にします。

LOW 演算子は、<定数式>の下位 8 ビットのみを残し、上位 8 ビットを 0 にします。

適用可能な式

これらの演算子は定数式にのみ適用できます。

例    HIGH 01010101b    ; 01010000b
    LOW  01010101b    ; 00000101b

LOW 演算子に負の数を渡した場合

LOW 演算子に負の数を渡したとき返される値は、LASM V2.07 以降で変わりました。

LOW 演算子に負の数を渡したとき、LASM 2.06 以前(および MS-MASM V5.1)では、返される値の下位 8 ビット以外はすべて 1 になっていましたが、LASM 2.07 以降(および MS-MASM V6.0)では、返される値の下位 8 ビット以外はすべて 0 になり

ます。

たとえば「MOV EAX, LOW (-2)」は、次のコードを生成します。

LASM 2.06 以前および MS-MASM V5.1  -> MOV EAX, 0FFFFFFFEh
LASM 2.07 以降および MS-MASM V6.0  -> MOV EAX, 0000000FEh

[目次]