私は大学で68HC11で学びました。動作は非常に簡単ですが、正直なところ、ほとんどの低電力マイクロコントローラーは類似しています(AVR、8051、PIC、MSP430)。マイクロコントローラのASMプログラミングに複雑さを追加する最大のものは、サポートされるメモリアドレス指定モードの数とタイプです。ハイエンドのARMプロセッサなど、より複雑なデバイスは最初は避ける必要があります。
おそらく、出発点としてMSP430をお勧めします。Cでプログラムを作成し、さまざまな関数をインラインアセンブリに置き換えて学習することもできます。シンプルな開始、x + y = zなど
関数またはアルゴリズムをアセンブリに置き換えた後、それをコーディングした方法とCコンパイラが生成したものを比較対照します。これはおそらく、私の意見ではアセンブリを学習すると同時に、コンパイラがどのように機能するかを学ぶための優れた方法の1つであり、組み込みプログラマーとして非常に貴重です。最初にCコンパイラで最適化をオフにしてください。そうしないと、コンパイラの生成コードが非常に混乱する可能性があります。最適化を徐々にオンにし、コンパイラーが何をするかを確認します。
RISC vs CISC
RISCは「Reduced Instruction Set Computing」を意味し、特定の命令セットではなく、CPUに最小限の命令セットがあることを示す設計戦略のみを指します。それぞれが基本的なことを行う命令はほとんどありません。これは、「RISCになる」ための厳密な技術的定義ではありません。一方、CISCアーキテクチャには多くの命令がありますが、それぞれが「もっと多くのことをします」。
RISCの目的の利点は、CPU設計に必要なトランジスタの数が少ないことです。これにより、消費電力が少なくなり(マイクロコントローラーで大きく)、安価で、クロックレートが高くなり、パフォーマンスが向上します。低消費電力と安価な製造は一般的に真実であり、CISCアーキテクチャの設計改善の結果として、より高いパフォーマンスが実際に目標に達していない。
現在、ほとんどすべてのCPUコアはRISCまたは「中間」設計です。最も有名な(または悪名高い)CISCアーキテクチャであるx86であっても。最新のx86 CPUは内部的にRISCのようなコアであり、フロントエンドにボルトで固定されたデコーダーにより、x86命令を複数のRISCのような命令に分解します。インテルはこれらを「マイクロオペレーション」と呼んでいると思います。
どのアセンブリ(RISCとCISC)の方がアセンブリで習得しやすいかについては、おかしいと思います。通常、RISC命令セットで何かを行うには、CISC命令セットで同じことを行うよりも多くのアセンブリ行が必要です。一方、利用可能な命令の数が多いため、CISC命令セットは学習がより複雑になります。
CISCが悪い名前を取得する理由のほとんどは、x86が最も一般的な例であり、作業するのが少し面倒だということです。これは、x86命令セットが非常に古く、下位互換性を維持しながら半ダース以上拡張された結果だと思います。4.5Ghzコアi7でさえ286モードで実行できます(そして起動時にも実行できます)。
ARMがRISCアーキテクチャであることについては、ある程度議論の余地があると考えています。確かにロードストアアーキテクチャです。基本命令セットはRISCに似ていますが、最近の改訂版では、命令セットがかなり大きくなり、RISCとCISCの中間にあると個人的に考えるようになりました。Thumb命令セットは、実際にはARM命令セットの中で最も「RISCish」です。