[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2646] Re: About NASM
光成です。
> そのようです。いつからかIA-32の仕様が変わったようです。i486の
>頃は、MOV(AX,CS);にオペランドサイズオーバーライドプリフィクスを
>付ける必要はないみたいに書かれていました。
手持ちのIntelのマニュアルによるとPentiumPro以降のCPUではmov eax, dx
とするとeaxの上位16bitは0クリアされると書いてあります。
それ以前のCPUではeaxの上位16bitは未定義です。
逆向きのmov dx, axの場合はどのプロセッサでも0x66は不要です。
大抵のアセンブラではmov ds,axを書くと0x66プレフィックスがつくため
プレフィックスのつかないmov dx, eaxとかけばよい(dsにはaxが代入される)
と書かれています。
ところで私個人の意見からするとソースが公開されていて新命令にも自分で
拡張できプラットフォーム非依存なコードを書けるNASM以外は使う気には
ならないです。こないだのmandelもLinux上で作っていました。
私には数バイトの差に関する優先順位は極めて低いです。