|
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.