ARMアセンブリコードの記述


20

Raspberry Piを入手した後、ARMアセンブリコードの記述方法を学びたいと思いました。私の質問は、始めるために何が必要ですか?コンパイラがすでにインストールされていると思いますが、それが何なのかわかりません(gccかもしれません)。どんな助けも大歓迎です!


ARMアセンブリに関する別の(無料の)本があります:yurichev.com/writings/RE_for_beginners-en.pdf
デニスユリチェフ

回答:


19

書きたいアセンブラの量に依存します。Cコードに埋め込まれた小さなスニペットのみを作成する場合gccは、実際に探しているものよりも多くなります。asmCでディレクティブを使用する方法の例については、ARM GCC Inline Assembler Cookbookのインラインasmリファレンスを参照してください。

一方、単なるスニペット以上のものを書きたい場合は、完全なアセンブラを使用したほうがよいでしょう。これは、どちらかasgasまたは両方(エイリアス)として利用できます。

そして最後に、ARM命令セットについて少し学ぶ必要があります。便利なリファレンスは、ARM1176JZF-Sテクニカルリファレンスマニュアルにあります。

注意RPiがarmv6命令のみをサポートしていることを覚えておいてください-armv7の何かを使用しようとしないでください

がんばろう!!:)


4

私はずっと前にARMアセンブリコードを使って冒険を始めました。ここに私のリソースがあります。

  • ケンブリッジ大学は非常にまともなチュートリアルをここに公開しました: Baking Pi。独自のOSのテンプレート、すべてのチュートリアルの完全なコード例、およびコードの構築と実行方法に関するすべての指示が含まれています。
  • さらに、この膨大な本はすべてのベースをカバーするはずです: ARMシステム開発者ガイド

3

私はコマンドラインインターフェイスには非常に慣れていますが、GUIの利便性に抵抗することはできませんでした。少し前に、CodeBlocks IDEを使用してRaspberry PiでARMアセンブリ言語プログラムを開発できることを発見しました。そこで、私はチュートリアルを書き、Mazidi ARMアセンブリの本のWebサイト用に書いたRaspberry Piアセンブリプログラミングチュートリアルに追加しました。

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

Webサイトで、「Raspberry Pi GUIを使用したARMアセンブリプログラミング」リンクをクリックします。

お役に立てれば。


1

GCCはデフォルトでインストールされます。Raspberry Piを初めて使用する場合は、ARMアセンブリよりも簡単なプログラミング言語を使用することをお勧めします。アセンブリ用のIDEはないため、テキストエディタを使用して、ターミナルからアセンブルする必要があります。使いやすさからGeditをお勧めします。アセンブリの構文を強調表示するには、github、特にshinyquagsire23のページに移動する必要がありました。とてもきれいです。ヘルプについて私が見つけた最高のリソースは、ブルース・スミスによる「Raspberry Pi Assembly Language:Raspbian Beginners」です。Amazonで見つけることができます。彼は、私が見つけた最も明確で最も簡単な方法の1つでアセンブリを説明しています。


1

実行可能な例で学ぶ

私は取り組んでいます:https : //github.com/cirosantilli/arm-assembly-cheat

特徴:

  • QEMUユーザーモードを使用してLinuxホストでまったく同じアセンブリを実行できるため、Piでネイティブになる前にホストで高速に試すことができます。
  • ARMv7とARMv8の両方をカバー
  • ホストとネイティブの両方で、すぐに使用できる優れたGDBセットアップ
  • 失敗したアセンブリの行番号を示すアサートがあります
  • それは理論的には、ポータブル一般OSますIOのためのC標準ライブラリを使用し、などを簡単に再利用のグッズを可能にprintfし、memcpy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.