1 #ifndef YACASL2_EXEC_INCLUDED
2 #define YACASL2_EXEC_INCLUDED
13 #include "disassemble.h"
16 INSIZE = 256 /**<IN命令の、入力領域 */
23 bool trace; /**<レジストリの内容をステップごとに表示する場合はtrue */
24 bool logical; /**<レジストリの内容を論理値(0から65535)で表示する場合はtrue */
25 bool dump; /**<メモリの内容をステップごとに表示する場合はtrue */
26 bool step; /**<ステップ実行の場合はtrue */
30 * @brief 実行モード: trace, logical, dump, step
32 extern EXECMODE execmode;
35 * @brief 実行エラーをエラーリストに追加する
37 void addcerrlist_exec();
40 * @brief アセンブル結果読み込みエラーをエラーリストに追加する
42 void addcerrlist_load();
45 * @brief 指定されたファイルからアセンブル結果を読み込む
47 bool loadassemble(const char *file);
50 * @brief 汎用レジスタの番号からレジスタを表す文字列を返す
52 * @return 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか
54 * @param word レジスタ番号[0-7]を表すWORD値
56 char *grstr(WORD word);
60 * @brief execから関数ポインタで呼び出される関数
65 * @brief COMET II仮想マシンを実行する
74 * @brief NOP命令。語長1(OPのみ)
82 * @brief LD命令 - オペランドr,adr,x。語長2
90 * @brief LD命令 - オペランドr1,r2。語長1
114 * @brief ADDA命令 - オペランドr,adr,x。語長2
122 * @brief ADDA命令 - オペランドr1,r2。語長1
130 * @brief SUBA命令 - オペランドr,adr,x。語長2
138 * @brief SUBA命令 - オペランドr1,r2。語長1
146 * @brief ADDL命令 - オペランドr,adr,x。語長2
154 * @brief ADDL命令 - オペランドr1,r2。語長1
162 * @brief SUBL命令 - オペランドr,adr,x。語長2
170 * @brief SUBL命令 - オペランドr1,r2。語長1
178 * @brief AND命令 - オペランドr,adr,x。語長2
186 * @brief AND命令 - オペランドr1,r2。語長1
194 * @brief OR命令 - オペランドr,adr,x。語長2
202 * @brief OR命令 - オペランドr1,r2。語長1
210 * @brief XOR命令 - オペランドr,adr,x。語長2
218 * @brief XOR命令 - オペランドr1,r2。語長1
226 * @brief CPA命令 - オペランドr,adr,x。語長2
234 * @brief CPA命令 - オペランドr1,r2。語長1
242 * @brief CPL命令 - オペランドr,adr,x。語長2
250 * @brief CPL命令 - オペランドr1,r2。語長1
258 * @brief SLA命令 - オペランドr,adr,x。語長2
260 * 算術演算なので、第15ビットは送り出されない
268 * @brief SRA命令 - オペランドr,adr,x。語長2
270 * 算術演算なので、第15ビットは送り出されない
271 * 空いたビット位置には符号と同じものが入る
279 * @brief SLL命令 - オペランドr,adr,x。語長2
287 * @brief SRL命令 - オペランドr,adr,x。語長2
367 * @brief RET命令。語長1(OPのみ)
383 * @brief COMET IIのメモリを表示する
387 * @param start 表示の開始アドレス
388 * @param end 表示の終了アドレス
390 void dumpmemory(WORD start, WORD end);
393 * @brief COMET IIのレジスタを表示する
399 #endif /* YACASL2_EXEC_INCLUDEDの終端 */