ポインタ

ポインタとして利用できるレジスタ

bxbisidiの4つだけがポインタとして利用できる. しかも,[{bx,bp}+{si,di}+即値]のような指定ができるのが特徴. すなわち,[bx + 6]とか,[bp + si][bx + di + 1]のような指定ができる.

PTR演算子:ポインタにおける型の明示(byte ptr [xxxxH])

クイック リファレンス mov byte ptr [0201H], 0FFH

レジスタを使わない転記の場合は,バイト長の転記であることを明瞭に示す必要がある. いずれかのオペランドがレジスタの場合は必然的に長さが決まるが, オペランドがメモリと即値になっているような場合には 何バイトのアクセスをしようとしているかわからなくなってしまう. このような問題を回避するため,ptr演算子が用意されている. 例えば, 1バイト長のエリアにアクセスしようとしている場合には byte ptr [xxxxH], 2バイト長(1ワード長)の場合には word ptr [xxxxH] と記述する.

使用例 説明
inc byte ptr [0200H] オフセットアドレス0200Hの1バイトのメモリをインクリメントする.
inc word ptr [0200H] 0200Hを下位,0201Hを上位とする1ワードのメモリをインクリメントする.
mov byte ptr [0201H], 0FFH

はたいたかし
May 5, 2006.
トップ > 開発ツール > 8086