[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

概要

Assembly language
コンピュータの機械語命令と一対一に対応するニーモニックを規定したプログラム言語。
Assembly
通常はAssembly language(アセンブリ言語)の略記表現です。
Assembler
Assemblyを実行可能形式にする処理系の事です。コンパイル言語に対するコンパイラに対応します。
Assemble
Assemblyを機械語にする事。Assembly languageで記述したソースを実行可能なバイナリ形式にする事。コンパイル言語に対するコンパイルに対応します。用例:Hand Assemble。

Webを検索するとこれらの単語をまぜて利用している人がいます。悪質なのだと翻訳文章でAssemblyという部分をアセンブラなんて訳してる人までいる始末です。。。

Assembleは動詞でこの名詞表現がAssemblyであり、Assemblyするための物がAssemblerなので、英語文献では非常に厳密にわけて利用されています(あたりまえ)。

単語の意味はできれば正確に利用した方がいいでしょう。

~erは~するための物、~を目的とする物という意味です。Battlerとだと闘うための物って意味になるように。。。

仕様文章

http://www.mot.co.jp/SPS/html/lit/pdf/MPCFPE32BJ_R0.pdf

DeveloperToolsの文書

/Developer/Documentation/DeveloperTools/Assembler

学習用ツール

通常は

gcc -S test.c

で吐き出されるコードを読むのがよい。ただし、これはgas形式となります。

Code Warrior-style を好むなら以下で出力されます。

gcc -fasm-blocks -S test.c

GNU lightning

入門Assembly

あくまでもCを知っている前提です。とりあえずCからAssemblyを学ぶ方が得策だと判断しました。

初めてのAssembly

#include <stdio.h>

int main(void) {
  printf("Hello World!\n");
  return 0;
}

これをhello.cの名前で保存する。

Terminalより

cc hello.c
./a.out

で動作を確認

cc -S hello.c

するとhello.sというファイルが作成される。

最近のコンパイラは小手先の最適化なぞほとんど無意味だというのが結構わかったりします。

読みやすく、ISO/ANSIの規約正確な記述のほうがよりよいでしょう。またISO/ANSIの規約に正確なほうが最適化率が高かったりします。ちゃんと検証してから物事をやりましょう。

さてhello.sから実行可能ファイルを作成するには以下の方法でよい。

cc hello.s

ldも実行されて実行ファイルが作成される。

ldされていない物を必要とするならばccにフラグをたてるかasを利用すればよい。

文法の理解

/Developer/Documentation/DeveloperTools/Assembler/Assembler.pdf

を読めば理解は可能です。

モトローラ

モトローラ・半導体セクター : PowerPC(R) 開発支援サイト

Master Selection Guide 2003 (MPC60x/7xx/74xx/824x)

モトローラ・半導体セクター : 資料

IBM

Software Reference Manual - PowerPC Microprocessor Family: The Programming Environments for 32-Bit Microprocessors

参考サイト

「アセンブリ言語の教科書」の原稿

http://www.lightsoft.co.uk/Fantasm/Beginners/begin1.html

http://www.lightsoft.co.uk/Fantasm/fant.html

http://www.mactech.com/articles/mactech/Vol.10/10.09/PowerPCAssembly/

dW : Linux : PowerPCアセンブリー

GCCの使い方RTL表現

フリーソフトウェア徹底活用講座

PowerPC-yuke@watalab

RISC系解説サイト

PowerPCもRISC。RISCの解説としてはARM系の解説サイトが結構存在する。

Linux Zaurusでアセンブリプログラミング

x86系解説サイト

アセンプリとしてはPPC系はすくないのでx86系を参照して知識の補足をする事があります。。。それほど訳にたたない場合も多いですが、、

http://webster.cs.ucr.edu/

Art of Assembly Language Programming and HLA by Randall Hyde

Introduction to UNIX assembly programming

マシン語大研究

Assembly Programming Linux

アセンブラ入門:古い感じ

Assembly Programming Linux

gas

GNUassembler


CategoryPrograming CategoryMac CategoryProgramLanguage

紹介マニアMoinMoin: PowerPCAssembly (last edited 2006-09-07 00:19:25 by )