Wiki

Clone wiki

hotasm / Home

熱血!アセンブラ入門 サポートページに掲載されているサンプルプログラムに、対応アーキテクチャを追加しています。

このリポジトリに含まれるファイル一覧です。

使用しているコンパイラは次の方法でビルドしました。

MSYS2用のパッケージを用意しています。

注意事項

  • チェックしたのはgcc-4.6と4.9だけのため、必ずしもそのバージョンでアーキテクチャが追加されたことは意味していません。その間のバージョンかもしれません。
  • gcc-4.9では関数呼び出しがインライン展開されるためnoinline属性で抑制しています。 → 修正内容
  • 種類・可読性・感想は独断と偏見です。可読性はアセンブリ言語だけが対象で、機械語は対象外です。

gcc-4.6

No アーキテクチャ 命令長 種類 可読性 感想
1 bfin-elf 可変(2,4) RISC? 表記が高級言語っぽい、フェッチの関係で関数の先頭8バイトはNOPを入れてでも確保?
2 m32c-elf 可変 CISC アーキ名の-cはCISCの意味、:q :gや即値に添えられる0x1570 0x1574が意味不明
3 microblaze-elf 固定(4) RISC 遅延スロット、nopが非エイリアス、ディスプレースメントが3オペランド式で表記、ニーモニックがやや独特
4 moxie-elf 可変(2,4,6) RISC? 4バイトの即値が扱える、ディスプレースメントが符号なしで分かりにくい(例: 0xfffffff8($fp)
5 rx-elf 可変 CISC ローカルラベルで分断され可読性が低下
6 score-elf 可変(2,4) RISC? 接尾辞!は2バイト命令の意味?10進数が括弧書きでコメント?関数は4バイトアラインメント?
7 spu-elf 固定(4) RISC PS3のCellのサブコア、$数値はレジスタ(例: $0)、ニーモニックが独特(加算がaなど)

gcc-4.9

No アーキテクチャ 命令長 種類 可読性 感想
1 aarch64-elf 固定(4) RISC ARMの64bit版、32bitと機械語は別物だが所々面影が残る
2 c6x-elf 固定(4) RISC mvk .D1は他のアーキでのmov.lのようなサイズ表記のようだが複雑、分岐の後に必ずnopがあるのは遅延スロット?
3 cr16-elf 可変(2,4) RISC? $0x0:sのように即値にサイズが付く、レジスタは16bitだが(r1,r0)のようにレジスタを組み合わせて32bit値が扱える
4 epiphany-elf 可変(2,4) RISC? 機械語の即値部分が視認しにくい、関数は4バイトアラインメント?
5 msp430-elf 可変(2,4) RISC? レジスタは16bit、、ローカルラベルで分断され可読性が低下
6 nios2-elf 固定(4) RISC gpを使用、10進数と接頭辞なしの16進数が混在
7 rl78-elf 可変 CISC 雰囲気が8086に似ている、戻り値はレジスタではなく固定アドレス0xffef0?
8 tilegx-elf 固定(8) VLIW shl16insliはオペランド1をシフトして下位にオペランド2を入れる
9 tilepro-elf 固定(8) VLIW 即値を作る命令以外はtilegxとほぼ同じ

Updated