アセンブリーでのプログラミングの学習-役立つリソース[終了]


10

前のスレッドに続き、アセンブリプログラミングについて少し学ぶことに興味を持ちました。便利なアプリをプログラミングしたいのではなく、低レベルのプログラミングの感触をつかんで、何が起こっているのかをよりよく理解するためです。

誰もが初心者のために本やオンラインリソースを推薦できますか?

ありがとう。


ポールカーター博士によるこの本は、x86 ASMに非常に適していました。
jonescb

回答:


5

おすすめの本:アセンブリ言語プログラミングの芸術

このサイトも気に入りました。アセンブリプログラミング入門!マイクロプロセッサとマイクロコントローラのコースを勉強している間、このサイトを参照として使用しました。


すばらしい...ありがとう。興味深く、典型的な現代の言語と比較して、それをどのくらい直感的に学んだと思いましたか?私の歴史は(業界の)#C 6ヶ月で、(私の寝室で:))同じ時間C ++の周り
ダレン・ヤング

1
私のコースでアセンブリプログラミングに遭遇しました(私はまだ学生です)。そして、あなたの質問で言ったように、組み込みシステムがどのように機能するかを知るのに役立ちました。それでも、高級言語(あなたが言うように現代的)に比べると、あまり役に立たないことがわかりました。私の分野、つまりWeb開発では決して使用しないでください。:)
ykombinator 2010

2

これは学術的な演習ですか、それとも学習したアセンブリ言語を使用するつもりですか?これは最近、かなり専門的なものです。コンパイラーの最適化が非常に良くなったため、高性能ハードディスクドライブのようなものでも、通常、コードベースの約1%がアセンブラーで記述されています。フードチェーンを4ビットまたはいくつかの8ビットプロセッサに行くと、はるかに多くのアセンブリ言語が使用されていることがわかります。

本当にアセンブリ言語を使いたい場合は、優れた命令セットを備えたプロセッサを選択してください。私は元ARMの従業員なので偏見があると思いますが、ARM命令セットは特に簡単に習得できました。会社で3日目にasmで効率的なFIRフィルターを作成できました。ARMの半導体パートナーは、最近、四半期ごとに約10億個のARMコアを出荷しているため、ARM ASMの専門知識を活用する企業を見つけるのは非常に簡単です。

約50ドルでコードを試すことができるARM評価ボードがたくさんあります。ARMCortex M3が非常に人気があるようです。これは、ARMのThumb2命令セットを使用します。これは、プレーンなolのARM32コードより少しあいまいですが、それでもかなり簡単で、非常に強力です。

この小さなボードは80ユーロで非常にクールに見えますhttp : //www.olimex.com/dev/stm32-103stk.html


それは純粋に学問的/自己学習です。低レベルのメモリ管理や高レベルの言語について理解を深めたいと思います。
Darren Young

1

基本的に、アセンブリプログラミングの意味では、まず基盤となるアーキテクチャを知っておく必要があります。次に、対応する言語、たとえばPICマイクロコントローラーでは、提供されたコンパイラーと言語を使用できます。このサイトは、PICマイクロコントローラーのチュートリアルを参照するために使用しています。


1

最も難しい部分はhello worldであることにいつも気づきました。これは通常、2つの数値を加算するような、より高いレベルの言語から呼び出される単純なassem関数です。そのハードルを乗り越えたら、レパートリーに指示と疑似操作(データの定義など)を追加するだけです。

ARMを使用したことがないのですが、私は2番目のオタクです。そのような最小限のアーキテクチャは、より簡単になるだけでなく、教訓的な目的だけではなく、正当なものを持つことに最も近いものになるかもしれません。


0

命令セット、アセンブラー、シミュレーターがあり、この目的のために作成されたいくつかのレッスンがあります。どれほど良いか悪いかについてのフィードバックはまだありませんが、それはそこにあります。15分か30分与えて、何か教えてくれるかどうか見てください。 http://github.com/dwelch67/lsasim その後、同様に試すことができる主流の命令セットシミュレータがいくつかあります。シンプルで、飾り気はなく、Cコンパイラがある場所ならどこでも実行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.