asm2s¶
概要¶
asm2sは、SMYLE系プロセッサのデフォルトASM形式(ただしQVPの記述のために用いられている範囲)のソースファイルを topsqvp-elf_as形式のソーフファイルに変換するコンバータです。以下の機能をもっています。
- 行を読み取ってラベル、命令、引数にパースする
- 疑似命令やマクロ命令など互換性のない部分を変換する
- 機械的に変換できない部分についてはWARNING!としてコメントアウトする
- 読み取り途中でコメントを検出したならばコメント文字を変換し行末まで飛ばす。
リビジョン¶
asm2s v01r02
コマンドライン¶
python asm2s.py [option [option_parameter]]...
以下のようなオプションをつけて動作させることで所望の結果を得ることができます。
コマンドラインオプション
オプション 意味 -h ヘルプ表示 –ASM asm 入力ASMソースファイル –S s 出力gas sソースファイル -i INC fileモード -v 処理の途中経過を詳細に出力 -V バージョンのみ表示して終了 -d デバッグ用オプション
構造¶
-
class
asm2s.
asmReader
(fnam, oCls, opt)[ソース]¶ ASM File Reader Class.
ASMファイルを読み取ってパースするクラス
-
getTOKEN
()[ソース]¶ LINE BUFFER, get token
1行バッファの現在ポジションから1トークン読み出すメソッド 空白文字の読み飛ばしはしない 現在ポジションが行末に達していたら”EOL”を返す。 0, EOL 1, COMMENT 2, { 3, } 4, [ 5, ] 6, + 7, - 8, * 9, / 10, < 11, > 12, << 13, >> 14, <= 15, >= 16, == 17, != 18, : 19, $ 20, , 21, % 22, & 23, | 99, “string” 100, ID 200, LABEL 999, ERROR-Message
-
-
class
asm2s.
gasWriter
(ofnam, incmode)[ソース]¶ GAS Writer Class.
asmReaderのパース結果を解釈し、gas形式に変換してファイルに書くクラス
-
checkLabelID1
()[ソース]¶ check Label + ID1
Label + ID1形式の特定の組み合わせをコメント化する 必要な場合は変換する. gasに変換する場合に問題が起こるケースもコメント化する
-
checkMacro
(lbl)[ソース]¶ check Macro
既知で代替命令の存在するMacroであればSanitized分類に落とす 既知でなければ Macro変換保留扱いとしてマクロ引数へ進む
-
convHexFormat
(arg, opt=False)[ソース]¶ convert hex Format
インテルHEX式の16進数表記であれば、C形式のHEXに置き換える. opt=Trueであれば数値として返す そうでなければ何もしない
-