X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fassemble.h;h=1a3c566541016d4889b7f43d4af1e3b3ef918cb8;hp=aa2b599753448077fc2521020e211b8749054978;hb=60d4c2573a30a48520545195b9ef89814fc60708;hpb=a639337a9aa30a059c1695ab1701b8714fd26193 diff --git a/include/assemble.h b/include/assemble.h index aa2b599..1a3c566 100644 --- a/include/assemble.h +++ b/include/assemble.h @@ -35,7 +35,7 @@ typedef struct { extern ASMODE asmode; /** - * アセンブル時の、現在およびリテラルのアドレスと入口名 + * アセンブル時の、現在およびリテラルのアドレスとプログラム入口名 */ typedef struct { WORD ptr; /**<現在のアドレス */ @@ -45,46 +45,6 @@ typedef struct { extern ASPTR *asptr; -/** - * アセンブラ命令を表す番号 - */ -typedef enum { - START = 01, - END = 02, - DS = 03, - DC = 04, -} ASCMDID; - -/** - * アセンブラ命令を表す配列 - */ -typedef struct { - ASCMDID cmdid; /**<アセンブル命令のID */ - int opdc_min; /**<最小オペランド数 */ - int opdc_max; /**<最大オペランド数 */ - char *cmd; /**<コマンド名 */ -} ASCMD; - -/** - * マクロ命令を表す番号 - */ -typedef enum { - IN = 011, - OUT = 012, - RPUSH = 013, - RPOP = 014, -} MACROCMDID; - -/** - * マクロ命令を表す配列 - */ -typedef struct { - MACROCMDID cmdid; /**<マクロ命令のID */ - int opdc_min; /**<最小オペランド数 */ - int opdc_max; /**<最大オペランド数 */ - char *cmd; /**<コマンド名 */ -} MACROCMD; - /** * ラベル配列 */ @@ -119,6 +79,11 @@ typedef enum { SECOND = 1, } PASS; +/** + * ラベルのエラーをエラーリストに追加 + */ +void addcerrlist_label(); + /** * プログラム名とラベルに対応するアドレスをラベル表から検索する */ @@ -173,9 +138,10 @@ void addcerrlist_assemble(); /** * 指定された名前のファイルをアセンブル - * 2回実行される + * 1回目ではラベルを登録し、2回目ではラベルからアドレスを読み込む + * アセンブル完了時はtrue、エラー発生時はfalseを返す */ -bool assemble(const char *file, PASS pass); +bool assemblefile(const char *file, PASS pass); /** * 引数で指定したファイルにアセンブル結果を書込