projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of dragon:/home/dav/yacasl2
[YACASL2.git]
/
include
/
assemble.h
diff --git
a/include/assemble.h
b/include/assemble.h
index
4e9203a
..
eb0ab28
100644
(file)
--- a/
include/assemble.h
+++ b/
include/assemble.h
@@
-21,36
+21,49
@@
typedef struct {
bool asdetail; /* アセンブラ詳細結果を表示する場合はtrue */
bool onlyassemble; /* アセンブルだけを行う場合はtrue */
} ASMODE;
bool asdetail; /* アセンブラ詳細結果を表示する場合はtrue */
bool onlyassemble; /* アセンブルだけを行う場合はtrue */
} ASMODE;
-extern ASMODE asmode;
-/* 値を格納するポインタ */
-extern WORD ptr;
+extern ASMODE asmode;
-/* リテラル(=付きの値)を格納するポインタ */
-extern WORD lptr;
+/* アセンブル時のプロパティ */
+typedef struct {
+ WORD ptr; /* 現在のポインタ */
+ WORD lptr; /* リテラル(=付きの値)を格納するポインタ */
+ char *prog; /* 他のプログラムで参照する入口名 */
+} ASPROP;
-/* 他のプログラムで参照する入口名 */
-extern char *prog;
+extern ASPROP *asprop;
-/* ã
\82
¢ã
\82
ȋ
\83
³ã
\83
\96
ã
\83
©å
\91
½ä»¤ã
\81
¨ã
\83
\9e
ã
\82
¯ã
\83
å
\91
½ä»¤ã
\82
\92
表ã
\81
\99
ç
\95
ªå
\8f
· */
+/* アセンブラ命令を表す番号 */
typedef enum {
START = 01,
END = 02,
DS = 03,
DC = 04,
typedef enum {
START = 01,
END = 02,
DS = 03,
DC = 04,
+} ASCMDID;
+
+/* アセンブラ命令を表す配列 */
+typedef struct {
+ ASCMDID cmdid;
+ int opdc_min;
+ int opdc_max;
+ char *cmd;
+} ASCMD;
+
+/* マクロ命令を表す番号 */
+typedef enum {
IN = 011,
OUT = 012,
RPUSH = 013,
RPOP = 014,
IN = 011,
OUT = 012,
RPUSH = 013,
RPOP = 014,
-}
CASLCM
D;
+}
MACROCMDI
D;
-/* ã
\82
¢ã
\82
ȋ
\83
³ã
\83
\96
ã
\83
©å
\91
½ä»¤ã
\81
¨ã
\83
\9e
ã
\82
¯ã
\83
å
\91
½ä»¤ã
\82
\92
表ã
\81
\99
é
\85
\8d
å
\88
\97
*/
+/* マクロ命令を表す配列 */
typedef struct {
typedef struct {
-
CASLCM
D cmdid;
+
MACROCMDI
D cmdid;
int opdc_min;
int opdc_max;
char *cmd;
int opdc_min;
int opdc_max;
char *cmd;
-}
CMDARRAY
;
+}
MACROCMD
;
/* ラベル配列 */
typedef struct {
/* ラベル配列 */
typedef struct {
@@
-147,16
+160,16
@@
void writestr(const char *str, bool literal, PASS pass);
/* アセンブラ命令DCをメモリに書込 */
void writeDC(const char *str, PASS pass);
/* アセンブラ命令DCをメモリに書込 */
void writeDC(const char *str, PASS pass);
-/* 命令がアセンブラ命令の場合は処理を実行する。
-
実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
+/* 命令がアセンブラ命令の場合は処理を実行する。
*/
+
/*
実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
bool assemblecmd(const CMDLINE *cmdl, PASS pass);
/* 命令のコードを返す
命令が無効な場合は0xFFFF */
WORD getcmd(CMDTYPE type, const char *cmd);
bool assemblecmd(const CMDLINE *cmdl, PASS pass);
/* 命令のコードを返す
命令が無効な場合は0xFFFF */
WORD getcmd(CMDTYPE type, const char *cmd);
-/* 命令が機械語命令の場合は処理を実行
-
実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
+/* 命令が機械語命令の場合は処理を実行
*/
+
/*
実行に成功した場合TRUE、それ以外の場合はFALSEを返す */
bool cometcmd(const CMDLINE *cmdl, PASS pass);
/* 1行のアセンブル */
bool cometcmd(const CMDLINE *cmdl, PASS pass);
/* 1行のアセンブル */