teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/02/18 04:55

投稿

rubato6809
rubato6809

スコア1382

answer CHANGED
@@ -18,4 +18,14 @@
18
18
  - 数年前、コンパイラ任せでなく性能を追求できないものかとゴリゴリ書き始めた時、まさしく特殊な命令・命令列を試すことになりました。趣味なので根性続かず中途半端で終わってます(今から再開しようかw)。
19
19
  - 先日たまたま、リンクエラー対策として、アセンブリ言語で提供されているCスタートアップルーチンに手を入れる機会がありました。Cでも対策可能でしたが、処理の本筋に関係ない部分であり、僅か数行の追加で済むことだったので。これは一応組込みのお仕事。
20
20
 
21
- 今、アセンブリ言語を使う仕事は本当に微々たる局面しか無いと思います。それでもアセンブリ言語を学ぶのは、**ブラックボックスを解消**し、コンピュータおよび言語処理系の**動作原理を具体的に実感**できる意義があると思います。オブジェクト指向も連想配列も何もかも…全て単純な命令の組み合わせで実現されているのだから。そうしたことを知るのは、やはり上手な利用につながるのではないですか。さらに、ハードウェアの理解が助けになる分野もあります。貴方が関係するとは限らないけど。
21
+ 今、アセンブリ言語を使う仕事は本当に微々たる局面しか無いと思います。それでもアセンブリ言語を学ぶのは、**ブラックボックスを解消**し、コンピュータおよび言語処理系の**動作原理を具体的に実感**できる意義があると思います。オブジェクト指向も連想配列も何もかも…全て単純な命令の組み合わせで実現されているのだから。そうしたことを知るのは、やはり上手な利用につながるのではないですか。さらに、ハードウェアの理解が助けになる分野もあります。貴方が関係するとは限らないけど。
22
+
23
+ 追記
24
+ > CPUのハードを理解してからアセンブリ言語を使うのか、C言語をアセンブリ言語の出力にして…プログラムを作っているのか
25
+
26
+ コンパイラにアセンブリ言語を出力させて雛形・お手本にします。
27
+ - CPUにどんなレジスタがあるか、確認するのは基本中の基本だが
28
+ - 命令全てを覚える必要はない。命令解説、命令一覧、擬似命令一覧のような資料があれば十分。
29
+ - 実用上、呼出規則(ABI)の確認は必須。規則を確認できる資料があれば安心確実ですが、関数に引数やreturn文、関数呼出し、グローバル変数等を含めておいてコンパイルしてみればかなりの情報が得られます。
30
+
31
+ プログラミング言語をひとつ使えるようになれば次の言語は楽に覚えられる、と同じで、アセンブラもひとつ経験すると別のアセンブラでも見当がつくようになります。