構文 <式 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