From 22eecda4cd870838b204933fcbde046e9d53a8d7 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Tue, 21 Nov 2023 13:34:40 +0100 Subject: [PATCH] WIP: ld instructions --- src/ulas.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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); } } -- 2.30.2