[ ] 演算子

構文    <式 1> [<式 2>]

[ ] 演算子は、<式 1>と<式 2>を加算します。この意味では演算子(+)とまったく同じです。

加算の働きのほかに、[ ] 演算子にはレジスタをインデクス/ベースレジスタとする機能があります。次の例を参照してください。

    MOV    AX, BX         ; BX の値を AX に入れる
    MOV    AX, [BX]      ; BX の指すアドレスの値を AX に入れる
    MOV    AX, [BX+2]    ; BX+2 の指すアドレスの値を AX に入れる
    MOV    AX, 2[BX]     ; 同上
    MOV    AX, BX+2      ; エラー

[ ] で囲まれたレジスタはインデクス/ベースレジスタと解釈され、このような項を持つ式はアドレス式になります。インデクス/ベースレジスタとして使用できるレジスタは BX,BP,SI,DI だけなので、そのほかのレジスタを [ ] で囲むことはできません。

適用可能な式

[ ] 演算子は定数式とアドレス式に対して適用できます。演算子(+)の場合と同様です。

例    MOV    AX, STR[6]          ; STR+6
    MOV    AX, 6[STR]          ; STR+6
    MOV    AX, STR[SI]         ; STR+[SI]
    MOV    AX, STR[SI+6]      ; STR+[SI]+6
    MOV    AX, [STR+SI+6]    ; STR+[SI]+6
    MOV    AX, 10[6]           ; 16

[目次]