YACASL2
|
#include "assemble.h"
Go to the source code of this file.
Functions | |
void | printline (FILE *stream, const char *filename, int lineno, char *line) |
ファイルストリームの現在行を番号付きで表示する More... | |
WORD | getadr (const char *prog, const char *str, PASS pass) |
アドレスを返す More... | |
WORD | grword (const char *str, bool is_x) |
汎用レジスタを表す文字列からレジスタ番号を返す More... | |
WORD | getliteral (const char *str, PASS pass) |
リテラルを返す More... | |
void | writememory (WORD word, WORD adr, PASS pass) |
アドレス値をメモリに書き込む More... | |
void | writestr (const char *str, bool literal, PASS pass) |
文字をメモリに書き込む More... | |
void | writedc (const char *str, PASS pass) |
DC命令を書込 More... | |
void | assemble_start (const CMDLINE *cmdl, PASS pass) |
アセンブラ命令STARTの処理 More... | |
void | assemble_ds (const CMDLINE *cmdl, PASS pass) |
アセンブラ命令DSの処理 More... | |
void | assemble_end (const CMDLINE *cmdl, PASS pass) |
アセンブラ命令ENDの処理 More... | |
void | assemble_dc (const CMDLINE *cmdl, PASS pass) |
アセンブラ命令DCの処理 More... | |
void | assemble_in (const CMDLINE *cmdl, PASS pass) |
マクロ命令 "IN IBUF,LEN" をアセンブル More... | |
void | assemble_out (const CMDLINE *cmdl, PASS pass) |
マクロ命令 "OUT OBUF,LEN" をアセンブル More... | |
void | assemble_rpush (const CMDLINE *cmdl, PASS pass) |
マクロ命令 "RPUSH" をメモリに書き込む More... | |
void | assemble_rpop (const CMDLINE *cmdl, PASS pass) |
マクロ命令 "RPOP" をメモリに書き込む More... | |
bool | casl2cmd (CMD *cmdtbl, const CMDLINE *cmdl, PASS pass) |
アセンブラ言語CASL IIの命令を処理する。 More... | |
bool | assemble_comet2cmd (const CMDLINE *cmdl, PASS pass) |
システムCOMET IIの命令をアセンブルする More... | |
bool | assembletok (const CMDLINE *cmdl, PASS pass) |
トークンをアセンブルする More... | |
bool | assembleline (const char *line, PASS pass) |
1行をアセンブルする More... | |
bool | assemblefile (const char *file, PASS pass) |
指定された名前のファイルをアセンブル More... | |
bool | assemble (int filec, char *filev[], WORD adr) |
指定された1つまたは複数のファイルを2回アセンブル More... | |
void | addcerrlist_assemble () |
アセンブルエラーをエラーリストに追加する More... | |
void | outassemble (const char *file) |
ファイルにアセンブル結果を書き込む More... | |
Variables | |
static CERR | cerr_assemble [] |
アセンブルのエラー More... | |
static CMD | ascmd [] |
アセンブラ命令 More... | |
static CMD | macrocmd [] |
マクロ命令 More... | |
ASPTR * | asptr = NULL |
アセンブル時の、現在およびリテラルのアドレスとプログラム入口名: ptr, lptr, prog More... | |
ASMODE | asmode = {false, false, false, false, false} |
アセンブルモード: src, label, onlylabel, asdetail, onlyassemble More... | |
void addcerrlist_assemble | ( | ) |
アセンブルエラーをエラーリストに追加する
Definition at line 797 of file assemble.c.
bool assemble | ( | int | filec, |
char * | filev[], | ||
WORD | adr | ||
) |
指定された1つまたは複数のファイルを2回アセンブル
filec | アセンブルするファイルの数 |
filev | アセンブルするファイル名の配列 |
adr | アセンブル結果を格納するアドレス |
Definition at line 751 of file assemble.c.
システムCOMET IIの命令をアセンブルする
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブルが何回目か |
Definition at line 581 of file assemble.c.
アセンブラ命令DCの処理
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 480 of file assemble.c.
アセンブラ命令DSの処理
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 466 of file assemble.c.
アセンブラ命令ENDの処理
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 449 of file assemble.c.
マクロ命令 "IN IBUF,LEN" をアセンブル
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 494 of file assemble.c.
マクロ命令 "OUT OBUF,LEN" をアセンブル
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 514 of file assemble.c.
マクロ命令 "RPOP" をメモリに書き込む
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 552 of file assemble.c.
マクロ命令 "RPUSH" をメモリに書き込む
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 537 of file assemble.c.
アセンブラ命令STARTの処理
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 431 of file assemble.c.
bool assemblefile | ( | const char * | file, |
PASS | pass | ||
) |
指定された名前のファイルをアセンブル
指定された名前のファイルをアセンブル
アセンブル完了時はtrue、エラー発生時はfalseを返す
Definition at line 723 of file assemble.c.
bool assembleline | ( | const char * | line, |
PASS | pass | ||
) |
1行をアセンブルする
passが1の場合はラベルを登録し、2の場合はラベルからアドレスを読み込む
*line | 1行分の文字列 |
pass | アセンブラが何回目かを表す数 |
Definition at line 689 of file assemble.c.
トークンをアセンブルする
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブラが何回目かを表す数 |
Definition at line 671 of file assemble.c.
アセンブラ言語CASL IIの命令を処理する。
エラー発生時は、cerrを設定
*cmdtbl | アセンブラ言語CASL IIの命令表 |
*cmdl | 1行分のラベル・コマンド・オペランド |
pass | アセンブルが何回目か |
Definition at line 567 of file assemble.c.
アドレスを返す
アドレスには、リテラル/10進定数/16進定数/アドレス定数が含まれる
*prog | プログラム名 |
*str | アドレスを表す文字列 |
pass | アセンブラが何回目かを表す数 |
Definition at line 319 of file assemble.c.
リテラルを返す
リテラルには、10進定数/16進定数/文字定数が含まれる
*str | リテラル。定数の前に等号(=)をつけて記述される |
pass | アセンブラが何回目かを表す数 |
Definition at line 357 of file assemble.c.
WORD grword | ( | const char * | str, |
bool | is_x | ||
) |
汎用レジスタを表す文字列からレジスタ番号を返す
文字列が汎用レジスタを表さない場合は、0xFFFFを返す
is_xがtrueの場合は指標レジスタとなり、GR0が指定された場合はCOMET IIの仕様によりエラー発生
*str | 汎用レジスタを表す文字列。「GR0」「GR1」・・・「GR7」のいずれか |
is_x | trueの場合は指標レジスタ |
Definition at line 337 of file assemble.c.
void outassemble | ( | const char * | file | ) |
ファイルにアセンブル結果を書き込む
*file | ファイル名 |
Definition at line 805 of file assemble.c.
void printline | ( | FILE * | stream, |
const char * | filename, | ||
int | lineno, | ||
char * | line | ||
) |
ファイルストリームの現在行を番号付きで表示する
*stream | ファイルストリーム |
*filename | ファイル名 |
lineno | 行番号 |
line | 行の文字列 |
Definition at line 314 of file assemble.c.
void writedc | ( | const char * | str, |
PASS | pass | ||
) |
DC命令を書込
str | アドレスを表す文字列。10進定数/16進定数/アドレス定数が含まれる |
pass | アセンブラが何回目かを表す数 |
Definition at line 413 of file assemble.c.
アドレス値をメモリに書き込む
word | アドレス値 |
adr | アドレス |
pass | アセンブラが何回目かを表す数 |
Definition at line 371 of file assemble.c.
void writestr | ( | const char * | str, |
bool | literal, | ||
PASS | pass | ||
) |
文字をメモリに書き込む
*str | アドレスを表す文字列。リテラル/10進定数/16進定数/アドレス定数が含まれる |
literal | リテラルの場合はtrue |
pass | アセンブラが何回目かを表す数 |
Definition at line 387 of file assemble.c.
|
static |
アセンブラ命令
Definition at line 291 of file assemble.c.
ASMODE asmode = {false, false, false, false, false} |
アセンブルモード: src, label, onlylabel, asdetail, onlyassemble
Definition at line 312 of file assemble.c.
ASPTR* asptr = NULL |
アセンブル時の、現在およびリテラルのアドレスとプログラム入口名: ptr, lptr, prog
Definition at line 310 of file assemble.c.
|
static |
アセンブルのエラー
Definition at line 272 of file assemble.c.
|
static |
マクロ命令
Definition at line 302 of file assemble.c.