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

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

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

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

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

**MASM [#jedbb445]
-Microsoftがx86, Windowsのために作ったアセンブラ
**MASM [#x993bca2]
-Microsoftがx86, Windowsのために作ったアセンブラ。
-フリーソフト
-Intel構文

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

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

**Flasm [#ld7fd96d]
**BASE-60 [#o2a38d0b]
-Z80用アセンブラ
-=とかが使えるちょいっと変り種

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

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

**BASE-60 [#x4ab7498]
-Z
#br
他にもCOMPASSとかA86とかAtari Assembler Editorとかいろいろあって困りますね><

*基本的なこと [#efe6e240]


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