*アセンブリ言語 [#y230f9e5]
#contents
#br

*はじめに [#m083f903]
あせんぶらぶら。現在、アセンブラを使わなければならないという状況はあまりない。~
だが、最適化のためとか、Revesingのためとかカーネル作る状況ではやっぱり必要なんじゃなぁ〜い?~
ということで、まとめておく。

ただ、一言にアセンブリ言語といっても、CPU(MPU)によって違ったり、それこそ構文のまったく違う
アセンブラがいっぱいあるので、それぞれ別に解説ページをつくることにしよう。

基本的なことについてはCPUの成り立ちとかそういう感じのページをあとで誰かが作ってくれるよ!きっと。

*アセンブリ言語一覧 [#db7cde9a]
**NASM (Netwide Assembler) [#gdabe35c]
-x86向けのアセンブラ。16ビット,32ビットどっちも可能。
-ELFとかa.out形式だとかいろんなフォーマットで出力出きるので便利、生の機械語も出力できたりするので、OSとかの開発にも使える。
-Intel構文

**MASM [#jedbb445]
-Microsoftがx86, Windowsのために作ったアセンブラ
-Intel構文

**TASM [#yaecc3a3]
-Borlandが作っていたMASMと互換性の高いアセンブラ。x86向け

**gas (GNU Assembler) [#r1cf0546]
-gccについてくる。x86向け
-GNU財団によるGNUによるGNUのためのアセンブラ。一部では構文がキモいとされるが、あくまでも主観的な話し。gcc -Sでの出力記法がこれなので、読めると便利。
-AT&T構文

**Flasm [#ld7fd96d]
-世にも珍しいFlash(Action Script)用のアセンブラ兼逆アセンブラ。ただしこれ単体では実行ファイルが出力できないので、リソースの入ったswfを用意する必要がある。
-変数名がそのまま使われて、もれなくガベコレが付いてきたりする。
-現在のところActionScript2まで対応、3.0は3.0の中間言語が埋め込まれた状態で逆アセンブリされる。
-Intel構文

**NESASM [#n7ba1647]
-ファミコン(6502)向けのアセンブラ。正確には、世界的に有名なNESイメージ(ファミコンエミュレータ用ROM形式)に出力するのであって、6502アセンブラではないし、そのままファミコンカートリッジに入れても動かない。
-CPUだけでなくてPPUとかAPUとか弄れて楽しい。
-Intel構文

**BASE-60 [#x4ab7498]
-Z


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS