トップページ⇒prog
18コメント6KB

アセンブラ

■ このスレッドは過去ログ倉庫に格納されています
0001ロコNGNG
C言語のプログラムとアセンブラ言語とでは、
一般的にどのくらい実行速度は違うのでしょうか?
「遅いから」という理由でうちの大学の先生に
アセンブラ言語で書けといわれたんで。
0002どういうCPU(MPU)のNGNG
アセンブリ言語を書く羽目になったんですか?
0003>1NGNG
アセンブリ言語でコーディングすれば、コンパイラーより速く
なるのは事実です。
どの位速くなるかはケースバイケースですね。
悪いコーディングだと遅くなることも有ります。
2さんの質問は極めて妥当なモノでして、パソコンなどでは
コンパイラの方が総合的に軍配が上がります。
組み込み機器、特にDSPなどの場合はアセンブリ言語を使わ
ないと性能が出ません。
0004もしかしたらNGNG
単にアセンブリ言語の実習をさせるためだったりして(笑)。
00051NGNG
PC−9801UXっていう古い機種で、
調べたところ、80286 10MHzっていうCPUです。
IOポート関係の命令と、PC98のグラフィック関係の命令が
結構あります。
QuickCで書いていたプログラムを全部アセンブリ言語
で書いても1.5倍にはならないですよね?
それよりもっといいパソコン使ったほうがいいですよね。

ところで「アセンブリ言語」っていうのが正しいんですか?
それと「ニーモニック」=「アセンブリ言語」ですか?
0006>5NGNG
98ということなので…
アセンブラでGDC、EGC直接叩けば、グラフィック描画に関しては
軽く2倍以上の速度が出ます。
一からアセンブラで書くより、ボトルネックの部分を洗い出して
_asmで部分的に最適化した方がいいと思います。


0007名無しさんNGNG
アセンブリ言語をアセンブルするプログラムがアセンブラです。

でも大抵はアセンブラといったらアセンブリ言語を
言いあらわすようです。
0008もしかしたらNGNG
Quick-Cの98用グラフィックライブラリ(ってあったよねたしか)が
遅いからアセンブリ言語に、って話かも知れませんね。

98用のグラフィック関連はプログラム資産がたくさんあるから
良いグラフィックライブラリを探すという方向も一案かな。
0009#10423NGNG
Quick-Cのライブラリは、かなり遅かったです。
やっぱり、GDCを5MHzで動かして「6」さんのようにC言語の
_asmでEGCを操作したほうが数倍速くなります。
それよりも、新しいパソコンを買ったほうがいいと思いますが。

00101NGNG
なるほど、グラフィックはやはり遅いんですね。
2倍以上になるんですか。
アセンブリ言語って全然わからないんでこれから勉強します。
論文提出まであと実質3か月しかないですが。

先生も、新しいパソコン買った方がいいとは言ってるんですが、
「とりあえず機械語で書いてみな。」
っていわれました。
とりあえずで書けるほど簡単ならいいけど。
0011#10423NGNG
>10
アセンブラはそんなに難しくないと思うんだけど、
GDC・EGCを操作するのは結構めんどくさいですよ。
GDC・EGCとかの本って、今は売ってないんじゃないかな?

0012puppeteerNGNG
コンパイラを変えるってのはダメなの?
MSC6なんて基地外のようなオプティマイズをしてたよ
(それ以降のは吐き出したコードをみてないから分からないが)
0013>10NGNG
うーむ、「車輪の再発明」という言葉を授けよう。
本質は「期限の迫った論文」ということならば
今から車輪を作るための道具の使い方を学ぶというのはちょっと。

98 | GDCでサーチエンジンを使って良いライブラリを見つけるべきでは。
0014ゆきねに☆彡NGNG
>12
MSC6の出た頃に、「The Basic」でオプティマイザVS人間オプティマイザ
って特集があって、人間オプティマイザ(手作業ね)が200%の高速化に成
功した!みたいな事が書いてありました。
でもprintfとかputsとか、stdoutに出すのが死ぬほど遅かったので、ansi
でサポートされてない_outtextとか、text vramに直接NEC文字コードを入
れたりってのは結構一般的だったんじゃないかと思います、たぶん。
0015#10423NGNG
>12
グラフィックライブラリがバリバリEGCを操作していれば
問題無いけど、このころのコンパイラってやたら古い機種も
サポートしていたので、やっぱり、自前でコーディングした
ほうがいいかも。
ひょっとしたら、コンパイラオプションに何かあるかもしれない。

本を探すなら↓で「PC-98」で探してください。
http://www.books.or.jp/
ちなみに、「テクニカルデータブック」は第2版以降じゃないと、
EGCはのってないから注意して!!

0016むふーんNGNG
EGCって全ての機種についてないよね?
0017#10423NGNG
EGCは80286からだったかな
VM2とかは、GCだった。
001898被害対策弁護団NGNG
あの頃、PC-98のBIOSを乱用して作った小物のツールを
うっかりVAIOで実行してしまい、落涙。
素直にANSI通りに作っておくべきだった……。
■ このスレッドは過去ログ倉庫に格納されています