- ベストアンサー
アセンプラ16ビット8086
DIVで割り算をやってみました。 256÷2は可能でしたが 512÷2は実行時エラーでした。 ソースが8ビットなら商が8ビットに納まるような割り算でなくては実行時エラーになってしまうものなのでしょうか? DIVする時にはこのように割り算の商に気をつけなくてはならないのですか? 32ビットのアセンブラでも一般的にこのようなことになりますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> DIVで割り算をやってみました。 > 256÷2は可能でしたが > 512÷2は実行時エラーでした。 div ax, cl とかをやったわけですね。 これは、16bit÷8bitの除算を行い、ah/ahにそれぞれ商と剰余を 格納するものなので、512/2 だと商が 8bitに収まらないので オーバーフローフラグが立ちます。 > 32ビットのアセンブラでも一般的にこのようなことになりますか? 商と剰余の関係は16bit除算と一緒なので、そういう状況 (65536 / 1 とか)になればオーバーフローが発生します。
その他の回答 (1)
noname#39970
回答No.1
なる。 アセンブラで8bit演算用DIVを用いたのなら512は8bitではないのでエラー。