From: Lukas Krickl Date: Tue, 21 Nov 2023 12:34:40 +0000 (+0100) Subject: WIP: ld instructions X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=22eecda4cd870838b204933fcbde046e9d53a8d7;p=ulas%2F.git WIP: ld instructions --- diff --git a/src/ulas.c b/src/ulas.c index 38a1b49..e5e782f 100644 --- a/src/ulas.c +++ b/src/ulas.c @@ -1356,6 +1356,7 @@ int ulas_intexpr(const char **line, unsigned long n, int *rc) { return ulas_intexpreval(expr, rc); } +// adds an instruction that only comparse names #define ULAS_STATICINSTR(name, n, ...) \ if (strncmp(ulas.tok.buf, (name), ulas.tok.maxlen) == 0) { \ const unsigned char t[] = {__VA_ARGS__}; \ @@ -1363,6 +1364,12 @@ int ulas_intexpr(const char **line, unsigned long n, int *rc) { return n; \ } +// parses ld r8, r8 +int ulas_ldr8r8(char *dst, unsigned long max, char *name, int base, + enum ulas_asmregs regleft, enum ulas_asmregs regright) { + return 1; +} + // assembles an instruction, writes bytes into dst // returns bytes written or -1 on error int ulas_asminstr(char *dst, unsigned long max, const char *line, @@ -1401,7 +1408,7 @@ void ulas_asmlst(const char *line, char *outbuf, unsigned long n) { fprintf(ulaslstout, "%08X", ulas.address); // always pad at least n bytes - fputs("\t", ulaslstout); + fputs(" ", ulaslstout); const int pad = 8; int outwrt = 0; @@ -1413,7 +1420,7 @@ void ulas_asmlst(const char *line, char *outbuf, unsigned long n) { fputs(".", ulaslstout); } - fprintf(ulaslstout, "\t%s", line); + fprintf(ulaslstout, " (%s:%04ld) %s", ulas.filename, ulas.line, line); } }