必要になったので勉強したことを書くかもしれない。
ページのタイトルは
アセンブラって書いてしまったけど、
アセンブラじゃなくてアセンブリ言語と書くべきだったのかもしれない。
インテルのマヌアルを参考にしています。
REP/REPE/REPZ/REPNE/REPNZ
Repeat String Operation Prefixって書いてあった。インテルのマニュアルに。
このプリフィックスは、カウントレジスタ(RCX,ECX,CX)に入っている値の回数だけストリング命令を繰り返します。一回実行するとデクリメント(値を1減らす)します。またはZF(ゼロフラグ)の状態によって判断される条件が満たされなくなるまで繰り返します。条件というのは↓になります。
REP ZFは関係ない
REPE/REPZ ZF=0
REPNE/REPNZ ZF=1
ZFのチェックはイテレーション後に行われます。ということは一回は実行されるんですかね。
これらのプリフィックスが付けられる命令は以下です。
REP INS,OUTS,MOVS,LODS,STOS
REPE/REPNE/REPZ/REPNZ CMPS,SCAS
REPZ/REPNZ REPE,REPNEと同じ
REPeatプリフィックスは一度に一つのストリング命令しにしか適応できません。複数命令をリピートしたかったらLOOP命令を使うか、他のループ幸三を使用してください。
例外は、プリフィックスが付けられた命令に従います。
out 0xb2 al
0xb2へのoutはbios呼び出し?
最終更新:2008年09月28日 13:44