dポイントプレゼントキャンペーン実施中!

DIVで割り算をやってみました。
256÷2は可能でしたが
512÷2は実行時エラーでした。
ソースが8ビットなら商が8ビットに納まるような割り算でなくては実行時エラーになってしまうものなのでしょうか?
DIVする時にはこのように割り算の商に気をつけなくてはならないのですか?

32ビットのアセンブラでも一般的にこのようなことになりますか?

A 回答 (2件)

> DIVで割り算をやってみました。


> 256÷2は可能でしたが
> 512÷2は実行時エラーでした。

div ax, cl とかをやったわけですね。
これは、16bit÷8bitの除算を行い、ah/ahにそれぞれ商と剰余を
格納するものなので、512/2 だと商が 8bitに収まらないので
オーバーフローフラグが立ちます。

> 32ビットのアセンブラでも一般的にこのようなことになりますか?
商と剰余の関係は16bit除算と一緒なので、そういう状況
(65536 / 1 とか)になればオーバーフローが発生します。
    • good
    • 0

なる。


アセンブラで8bit演算用DIVを用いたのなら512は8bitではないのでエラー。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!