banner

ブログ

Jul 27, 2023

アセンブリ言語が怖い人はいませんか?

今週、[Al Williams] は、アセンブリ言語をもう学ぶ価値があるかどうか、そしていつ学ぶべきかについて、素晴らしい考察記事を書きました。 コメントは溢れかえりましたが、これほど多くの人が基本的に私たちに同意していることに驚きました。 もちろん、それはハッカデイの群衆ですが、それでも私は最も原始的な言語に対するほとばしる愛を期待していませんでした。

ただし、アセンブリ言語は実際には 1 つの言語ではありません。 すべてのチップは独自の方言を話します。 もちろん類似点はあります。どの CPU にも add 関数がありますよね。 しかし、アドが 1 つだけの CPU はほとんどありません。キャリー、保存、作業レジスタまたは RAM からの読み取りを備えたものと備えていないものがあります。 そして、直接的または間接的なメモリ アクセスについて話し始めると、チップの個々のアーキテクチャに応じて異なるアセンブリ言語が必要になります。

それでも、厳密に言語の観点から見ると、CPU の特定の動作方法には互換性がない可能性がありますが、途中で習得するプログラミングのイディオムという点では非常に似ています。 一連の確実なアルゴリズムを学習することは、どの高水準言語を使用するかに関係なく役立ちます。同様に、生のアセンブリ言語からループと単純なメモリ構造を作成する背後にある概念を学習することは、どの CPU を選択するかに関係なく役に立ちます。

私は少数の CPU 用のアセンブリ言語を書いただけで、それほど多くはありませんでしたが、マイクロコントローラーが最も使いやすいことがわかりました。 したがって、その水に足の指を浸したい場合は、AVR または MSP430 を手に取ってください。 あるいは、新たな話題である RISC-V もあるかもしれません。 命令セットは非常に小さいため、ほとんどの作業を自分で行う必要があることがわかります。 そして結局のところ、それがアセンブリ言語を学ぶことのポイント、つまりシリコンのように考えることを学ぶことなのです。 解くのが楽しいパズルのように扱うと、おそらくその経験さえ楽しめるでしょう。

[Al] の最初の質問は、アセンブリ言語をいつ学ぶべきか、つまり高水準言語の前か後か、というものでした。 読者の 99% にとって、答えは今すぐにあると思います。

共有