以下のメッセージを削除します。


[2181] Re:汎整数拡張について
返信


投稿者:d_kuma
2019/08/08 17:42:29

Link:
ご連絡遅くなりました。

アセンブラの解説をしていただき、ありがとうございます。
char型はアセンブラ上で変換が入るということで理解しました。
会社内で汎整数拡張について聞いてみたら、アセンブラ上で差異は無いと言われたので、間違って理解していました。
movsblというのが分からず、ネットで調べました。
movsはsign extension(符号拡張)によるコピー、blはfrom byte(8ビット) to long(32ビット)ということで理解しました。

これに付随して、さらに質問があります。
“得或拡張により、char型やshort型は、値を取り出す時に32ビットに変換されるので、int型より処理時間がかかったり、int型より実行ファイルが増大したりするのでしょうか?
汎整数拡張があるので、char型やshort型を使わずに、int型を使った方が良いのでしょうか?

,砲弔い討蓮char型やshort型を使うと、アセンブラ上で余計な変換が入って実行ファイルが増大してしまう、ということが書かれた技術書を読んだことがあります(『CプログラミングFAQ』だったと思います)。

△砲弔い討蓮C言語ではint型が基準なので、できるだけint型を使うべきなのかなと思っています。
巨大な配列を扱う時にメモリのサイズを減らしたいのでchar型やshort型を使うのはいいと思うのですが、
そうでないなら、できるだけint型を使うべきではと思っています。

パスワード:

管理者削除