固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に
○● COLUMU ●○
アセンブリ言語を拡張してプログラミングのミスを減らす
FitDSPでは,プログラム開発言語としてアセンブリ言語を利用していますが,C言語風のシンタックスを採用しています.Cプリプロセッサも利用可能です.
アセンブリ言語によるプログラミングは,とかくミスを犯しやすいものです.筆者らは,自分たちでアセンブリ・プログラムを書いている際に犯しやすかったミスを分析し,それを防止するしくみをアセンブラに組み込みました.リストAに示すように,アセンブラはサブルーチンを呼び出すときにレジスタ・インターフェースの一致をチェックします.
また,必要なレジスタのタイプを指定すると,未使用のレジスタを自動的に割り付けます.割り付け時には,レジスタにユーザ定義のラベルを付けることができるので,プログラムの可読性も向上します.
図Aに示すように,レジスタ・ラベルを参照しながら,ソース・レベルのデバッグも可能です.
〔リストA〕アセンブリ言語の拡張
アセンブラのレジスタ関連機能を拡張し,プログラミングのミスを減らせるようにした.レジスタの自動割り付け機能によって,未使用のレジスタを自動的に割り当てる.また,サブルーチン呼び出し時にレジスタ・インターフェースが一致しているかどうかを検証する.
〔図A〕 レジスタ・ラベルを用いたソース・レベル・デバッグ
レジスタに付けたユーザ定義のラベルを用いて,ソース・レベル・デバッグを実施する.現在実行中の行(ソース・コード表示窓中で矢印があるところ)で,アクティブなレジスタのみラベルが表示される.