YACASL2
Loading...
Searching...
No Matches
assemble.h
Go to the documentation of this file.
1#ifndef YACASL2_ASSEMBLE_H_INCLUDED
2#define YACASL2_ASSEMBLE_H_INCLUDED
3
4#include <stdio.h>
5#include <stdlib.h>
6#include <string.h>
7#include <stdbool.h>
8#include <ctype.h>
9#include <assert.h>
10#include <errno.h>
11#include "cerr.h"
12#include "struct.h"
13#include "token.h"
14
18typedef struct {
19 bool src;
20 bool label;
21 bool onlylabel;
22 bool asdetail;
24} ASMODE;
25
29extern ASMODE asmode;
30
34typedef struct {
37 char *prog;
38} ASPTR;
39
43extern ASPTR *asptr;
44
48typedef struct {
49 char *prog;
50 char *label;
53
61
65enum {
67};
68
72typedef enum {
73 FIRST = 0,
74 SECOND = 1,
75} PASS;
76
82
91WORD getlabel(const char *prog, const char *label);
92
102bool addlabel(const char *prog, const char *label, WORD adr);
103
108void printlabel();
109
114void freelabel();
115
121
132bool assemblefile(const char *file, PASS pass);
133
143bool assemble(int filec, char *filev[], WORD adr);
144
150void outassemble(const char *file);
151
152#endif
PASS
アセンブラが、1回目か2回目かを表す数値
Definition assemble.h:72
@ FIRST
Definition assemble.h:73
@ SECOND
Definition assemble.h:74
void addcerrlist_label()
ラベルのエラーをエラーリストに追加する
Definition label.c:84
bool addlabel(const char *prog, const char *label, WORD adr)
プログラム名、ラベル、アドレスをラベル表に追加する
Definition label.c:106
void printlabel()
ラベル表を表示する
Definition label.c:135
bool assemblefile(const char *file, PASS pass)
指定された名前のファイルをアセンブル
Definition assemble.c:699
ASMODE asmode
アセンブルモード: src, label, onlylabel, asdetail, onlyassemble
Definition assemble.c:288
ASPTR * asptr
アセンブル時の、現在およびリテラルのアドレスとプログラム入口名: ptr, lptr, prog
Definition assemble.c:286
@ LABELTABSIZE
Definition assemble.h:66
void outassemble(const char *file)
ファイルにアセンブル結果を書き込む
Definition assemble.c:781
WORD getlabel(const char *prog, const char *label)
プログラム名とラベルに対応するアドレスをラベル表から検索する
Definition label.c:89
void addcerrlist_assemble()
アセンブルエラーをエラーリストに追加する
Definition assemble.c:773
bool assemble(int filec, char *filev[], WORD adr)
指定された1つまたは複数のファイルを2回アセンブル
Definition assemble.c:727
struct _LABELTAB LABELTAB
ラベル表を表すデータ型
void freelabel()
ラベル表を解放する
Definition label.c:158
ラベル表を表すデータ型
Definition assemble.h:57
LABELARRAY * label
Definition assemble.h:59
struct _LABELTAB * next
Definition assemble.h:58
アセンブルモードを表すデータ型
Definition assemble.h:18
bool onlylabel
Definition assemble.h:21
bool src
Definition assemble.h:19
bool label
Definition assemble.h:20
bool onlyassemble
Definition assemble.h:23
bool asdetail
Definition assemble.h:22
アセンブル時の現在およびリテラルのアドレスとプログラム入口名を表すデータ型
Definition assemble.h:34
WORD lptr
Definition assemble.h:36
WORD ptr
Definition assemble.h:35
char * prog
Definition assemble.h:37
ラベル配列を表すデータ型
Definition assemble.h:48
char * prog
Definition assemble.h:49
WORD adr
Definition assemble.h:51
char * label
Definition assemble.h:50
unsigned short WORD
16ビットの数値を表すデータ型
Definition word.h:9