asm_book - ARM 64ビットISAでのアセンブリ言語プログラミングを教える本。その過程で、高水準言語に直接適用される優れたプログラミングプラクティスとコード開発に関する洞察が提供されます。

(A book teaching assembly language programming on the ARM 64 bit ISA. Along the way, good programming practices and insights into code development are offered which apply directly to higher level languages.)

Created at: 2022-05-16 23:35:31
Language: Assembly

アセンブリ言語プログラミングの穏やかな入門

この教科書は、アセンブリ言語の穏やかな入門書を提供します プログラミング。この紹介を「穏やか」にしているのは、それが前提としているからです 読者はすでにCまたはC ++コーディングに慣れています。これを使用します 低レベルのISAに向かって後方に橋渡しするための想定された知識 (命令セットアーキテクチャ)。

私たちは非常に鋭い点を家に持ち帰ります:Cは高レベルのアセンブリです 言語アセンブリ言語は怖いことではありません。

この本は誰を対象としていますか?

前述のように、すでにC(または子孫の言語)に精通している場合 C ++などのCから)、この本はあなたがすでに知っていることから始まります。あとで 章では、ARM V8のコーナーとリセスをより深く掘り下げます ISAであり、豊富な指導を習得したい人に適しています 64ビットARMプロセッサのセット。

この本はアセンブリ言語をカバーするコースで使用できますか?

はい、もちろんです。

実際、アセンブリ言語の研究は非常に 有能なソフトウェアエンジニアの育成にとって重要です。さらに、 x86命令セットを教えることは、ISAのように残酷であると主張するでしょう 1970年代に生まれ、年齢とともに混乱しています。

MIPS命令セットは、大学でよくカバーされる別のISAです レベルコース。x86 ISAよりも親切で穏やかですが、MIPS プロセッサはARMファミリほど関連性がありません。携帯電話、タブレット、 ラップトップやデスクトップにもARM V8プロセッサが搭載されており、 ARM ISAははるかに局所的です。おそらくもっと「クール」です。

本書で使用されている呼び出し規約

アセンブリ言語プログラミングは、 基になるハードウェア アーキテクチャ。ホストの動作環境が再生されます アセンブリ言語プログラムがどのようになっているかを決定する上での非常に大きな役割 構築。「呼び出し規約」とは、関数の呼び出し方法を指します パラメーターの受け渡し方法。

本書では、ARM LINUX の規則を使用します。これはですね:

  • ARM Linux VMをMacintoshで実行する必要があります。 ARMベースのMac。なぜでしょうか。林檎。それが理由です。

  • ARMベースでWSL(Linux用Windowsサブシステム)を実行する必要があります ウィンドウズマシン。これらは存在します!

  • ARM Linux VM は、x86 ベースの Windows マシンで実行する必要があります。

たくさんの名前

ARMの設計は称賛に値しますが、ARMの命名規則は 彼らの知的財産は恐ろしいです。本書では、AARCH64 と ARM V8は64ビットARM命令セットの同義語と見なされます アーキテクチャ (ISA)。

ARMサイトでドキュメントを見つけるのは非常に困難です。 非常に多くのバージョンがあり、同じものに対して非常に多くの名前があります 一般的なドキュメント。それは本当に腹立たしいことがあります。

テキスト内では、必要に応じてゲルマンリンクを提供します。

ここに "a"メイン命令セットページへのリンクがあります。

セクション1 - C / C ++からアセンブリ言語へのブリッジング

まず、CとC ++から「ブリッジング」と呼ばれるものを提供します。 アセンブリー言語。私たちはあなたがすでに新しいことを学ぶために持っている知識を使います 知識-それはなんてクールなのでしょう。

コンテンツ
1 ハローワールド
2 If ステートメント
3 ループ
....ある ....Whileループ
....b ....ループの場合
....c ....続行の実装
....d ....ブレークの実装
4 間奏
....ある ....レジスタ
....b ....ロードと保存
....c ....LDRの詳細
....d ....レジスタサイズ
5
switch
6 関数
....ある ....呼び出しと返却
....b ....パラメーターの引き渡し
....c ....一般的な C ランタイム関数の呼び出し
7 フィズバズ - 完全なプログラム
8 構造体
....ある ....アラインメント
....b ....定義
....c ....使用
9
const
10 キャスティング

セクション 2 - 浮動小数点

浮動小数点演算は、独自の命令と独自のセットを使用します レジスタの。したがって、浮動小数点演算は 自分のセクション:

コンテンツ
1 浮動小数点
....ある ....浮動小数点数とは何ですか?
....b ....レジスタ (簡略化)
....c ....リテラル
....d ....エフモフまだ書かれていません
....e ....整数への変換/整数からの変換
....f ....まだ書かれていない4つの基本操作
....g ....まだ書き込まれていない選択された追加操作
....z ....半精度フロート

セクション3 - ビット操作

アセンブリ言語に関する本は、ビットバッシングなしで何でしょうか?

コンテンツ
1 ビットフィールド
....ある ....ビットフィールドなし
....b ....ビットフィールド付き
....c ....新しく記述された指示のレビュー

セクション4-その他のもの

コンテンツ
--- C 関数のストリング・リテラルの長さの決定

プロジェクト

提供するいくつかのプロジェクト仕様は次のとおりです 成長する習熟への挑戦。

DIRENTプロジェクトは、 複合体はアセンブリ言語で使用できます。

struct

著者について

コンピュータサイエンスにおけるペリー・キボロウィッツのキャリアは5弱に及びます 数 十 年。彼は主にハードウェアに関連する5つ以上の会社を立ち上げました。 画像処理と視覚効果(映画用および テレビ)。ペリーは、彼の仕事でエミー賞を受賞しました ギャザリング、バビロン5のパイロットエピソード。その後、彼はエミー賞を受賞しました SilhouetteFX、LLCの彼の同僚と一緒にエンジニアリングのための賞。 SilhouetteFXは、ほぼすべての重要な映画で使用されています。 ロトスコーピング, ペイント, トラッキング, 2Dから3Dへの再構成, 合成, もっとその。

1996年、ペリーはアカデミー科学賞を受賞しました。 形状駆動ワーピングの発明に対する技術的成果と モーフィング。これは、多くの原因となる手法です。 フォレストガンプ、タイタニック、スターゲイトの有名な効果。

222はペリーの18年目のコンピュータ教育をマークします 大学レベルの科学、 UWマディソンで10年、現在はカーセージ大学で8年。

アセンブリ言語は、ペリーが以下で働いてきたことへの情熱です ISA:

  • ユニバック1100

  • ディジタル・イクイップメント・コーポレーション PDP-11

  • ディジタル・イクイップメント・コーポレーション VAX-11

  • モトローラ 68000

  • ARM が AARCH64 で始まる

この作品は妻のサラと息子のイアンとエヴァンに捧げられています。

無償プラグ

ペリーは約200のプログラミングプロジェクトのライブラリを作成しました CS 1、CS 2、データ構造、ネットワーキング、操作に適しています システムおよびコンピュータ編成クラス。の発行者の場合 CS教科書は図書館の購入に興味を持ってください、お願いします 手を伸ばしてください。