上のニーモニック表の通り、「MOVS?」命令は転送を行う。メモリーの転送後、 SI,DIが増えるか減るかは、DF(フラグ)によって変わる。DFの設定は後述する。また、この命令だけでは1度に1バイト、2バイト、4バイトしか転送できない。これでは不便なので、次ページの「REP」命令で、連続して転送を行う。MOVSB ( Move String Bytes ) :ストリングのバイト移動
MOVSB 動作:[DS:SI]の内容1バイトを[ES:DI]に転送し、 DF=1の時は、SI,DIを1減らす。 DF=0の時は、SI,DIを1増やす。 影響を受けるフラグ:なしMOVSW ( Move String Words ) :ストリングのワード移動
MOVSW 動作:[DS:SI]の内容2バイトを[ES:DI]に転送し、 DF=1の時は、SI,DIを2減らす。 DF=0の時は、SI,DIを2増やす。 影響を受けるフラグ:なしMOVSD ( Move String Doublewords ) :ストリングのダブルワード移動
MOVSD (80386以上) 動作:[DS:SI]の内容4バイトを[ES:DI]に転送し、 DF=1の時は、SI,DIを4減らす。 DF=0の時は、SI,DIを4増やす。 影響を受けるフラグ:なし
| ストリングの移動 【86】 |
|