28

私の質問: MIPS プログラミング言語は知っておくと有益ですか?

私は CS の学生で、MIPS に焦点を当てたアセンブリ クラスを受講しています。私は高級言語を書くのはとても快適ですが、Mips には少し落ち込んでいます。

MIPS は、私が本当に集中して完全に把握する必要があるものですか? それは将来私を助けるでしょうか?

4

12 に答える 12

35

ある時点 (90 年代) では、MIPS 由来のプロセッサが世界で最も売れているプロセッサであり、Intel x86 プロセッサの売上を上回っていました。これは、組み込み市場での大きな存在感によるものです。今では ARM ベースのプロセッサがその役割を引き継いでいると思いますが、MIPS を使用する組み込みシステムはまだたくさんあります。

これまでのキャリアで MIPS チップをアセンブラーでプログラムしたことがない場合でも、アセンブリ言語は学習に役立ちます。コンパイラが何を出力しようとしているのかをある程度知っていれば、より効率的な高レベルのコードを書くのに役立ちます。まだ使用されているその他の領域には、コンパイラ (独自の記述)、デバイス ドライバ、およびマルチメディア プログラミング (MMX または SSE を必要とするコードは通常、アセンブラで手動で記述されます) が含まれます。

各 CPU タイプには異なる命令セットがありますが、十分な共通性があり、アセンブリの 1 つの方言 (この場合は MIPS) を学べば、他の方言は簡単に理解できるはずです。

于 2008-09-19T03:07:18.203 に答える
10

コンピュータの非常に低いレベルを理解することは役に立ちます。たとえば、CPU がある種の「新しいオブジェクト」命令を実行すると言う開発者がいます。もちろん、そのような指示はありません。オブジェクトの管理は、抽象化のいくつかの上位層で行われます。オブジェクトの作成に費用がかかる理由 (または費用がかからない理由) や、保護されたアドレス空間がシステムをより堅牢にする理由を理解できるように、この違いを理解しておくとよいでしょう。

私が学校にいたとき、アセンブリ コースは System/360 命令セットを使用して IBM メインフレームで教えられていました。私のキャリアのどの時点でも、そのようなマシンでの作業に近づいたことはありませんが、CPU がどのように見えるかについての知識は貴重でした.

最近は、MIPS プロセッサを使用した組み込みシステムに取り組んでいます。実際、私はかなりの時間を MIPS アセンブリ リストに費やし、ブート ベクトルと同期プリミティブ用の MIPS アセンブリをいくつか書きました。アセンブリで実際に何も記述しない場合でも、CPU の動作を理解することは依然として重要です。

于 2008-09-19T03:12:04.793 に答える
8

私は約 2 年前に mips を行うアセンブリ クラスを受講しました。私はゲームボーイ アドバンスのゲームを mips のような asm 言語で書いていることに気付きました。楽しめたとは言えません。

アセンブルされたコードの内部の仕組み (高レベルから低レベルまで) を理解しておくとよいと思いますが。コンピューターが実際にどのように機能するかについて、より理解を深めることができたように感じます。また、自分のアセンブリ言語を設計して、すぐにいくつかの仮想マシンを作成することに抵抗できませんでした:)

于 2008-09-19T03:01:34.367 に答える
6

MIPS は、アセンブリを学習するのに最適な言語です。プログラムを書く手間を軽減するための汎用レジスタがたくさんあり、RISC アーキテクチャであるため、覚える必要のある命令が少なくなります。

多くの人が言及していない主流の使用法のいくつかは、N64、プレイステーション 1、プレイステーション 2、および PSP がすべて MIPS プロセッサを使用していたことです。

于 2009-05-04T09:38:08.543 に答える
4

「mips プログラミング言語」とは、MIPS アセンブリ言語を意味すると思います。

アセンブリ言語を学ぶことは有益であり、記述したコードをハードウェア上でどのように実行するかをマッピングするのに役立ちます。これにより、キャッシュ ミス、分岐、順不同の実行、および高レベル コードの記述では考えられないその他の事柄など、より低レベルの問題にさらされる可能性があります。

天気学習 MIPS アセンブリは、あなたが従う予定のキャリアによって異なります。個人的には、x86/x64 (PC で人気があり、PC で C++ や C# を記述した場合に直接適用可能)、PPC (人気が高まっており、ゲーム コンソールで使用され、RISC にもさらされている) または ARM (多くの組み込みデバイスで使用されている) だと思います。携帯電話など) を学習する方がよい場合があります。

于 2008-09-19T03:13:56.473 に答える
3

アセンブリ言語は常に学ぶ価値があります。おそらく、コンパイラが高級言語コードをアセンブリ コードに変換する方法を教えられたり、見たりすることはありませんが、知識はアセンブリ言語を知ることの最も重要な利点であると言えます。最高の最適化レベルであっても、多くのコンパイラがいかに非効率的であるかは、冷静です。(ほとんどのコンパイラは、マシン コードに進んでリンクするのではなく、要求に応じてアセンブリ コードをダンプします。)

とは言うものの、現在 MIPS を使用している人はほとんどいないため、MIPS asm はおそらく役に立たないでしょう。(SGI は以前は x86/IA-64 チップを使用していましたが、現在はすべて x86/IA-64 チップを使用しています。) アセンブリ言語に魅力を感じ、さらにアセンブリに取り組みたい場合は、ARM 命令セットを学んでください。ARM は MIPS よりも少しだけ複雑であり、事実上すべての携帯電話、スマートフォン、および PDA が ARM チップ (数十のメーカーが製造) を使用しています。iPod は ARM を使用し、(私が思うに) Zune もそうです。

于 2008-09-19T03:16:56.013 に答える
2

あなたの場合、MIPSは個別指導の補助として使用されていると思います。これはコンピュータサイエンスのクラスであり、コードモンキーツールを提供するのではなく、x86ではなくMIPSのような単純なアーキテクチャで簡単に例示できる幅広い概念を教えようとしています。

それがあなたの「プログラマーのツールボックス」に入ることを期待しないでください。低レベルのコードを書くという実用的な目的のために、後でx86アセンブリ言語を学ぶ方がよいでしょう。

于 2012-01-09T00:08:05.410 に答える
2

Mips が組み込みシステムに戻ってきたようです。@[sk] は私よりも優れた要約を提供してくれましたが、最近の例があります。

Broadcom は最近、MIPS または ARM チップのいずれかを搭載した Wifi カードを製造しているようです (ドキュメントには一方が記載されており、ファームウェアには他方が記載されています)。ただし、新しいチップでは、すべての機能を有効にして Linux をサポートする作業を待っているところです。(さて、いくつかのドライバーを入手して書いてください:P)

于 2008-09-19T03:16:36.530 に答える
1

アセンブリを学ぶべき 3 つの理由を次に示します。

  1. 一部の小さなプログラムは、高水準言語よりもアセンブリで作成する方が適切です。
  2. 古いアセンブリ プログラムは、デバッグまたは拡張が必要になる場合があります。
  3. アセンブリーでのプログラミングを学ぶことは、プロセッサーが行うこととコンパイラーが行うことの正確なモデルを開発するのに役立ちます。

3 番目の理由は、断然最も重要です。ハードウェアがどのように機能するかを知ることで、コンピューター サイエンスの理解が大幅に深まり、より優れた開発者になることができます。

于 2015-02-17T23:02:00.157 に答える
1

私は昨年 MIPS を勉強しました。MIPS は重要な言語ですが、残念なことに、MIPS を使用することはおそらくないでしょう。いくつかの基本を学びますが、他の言語と比較して MIPS には多くの仕事がないため、必要以上に多くを学ぼうとして時間を無駄にしないでください。

于 2013-10-21T17:36:13.037 に答える