This commit is contained in:
anon 2024-07-16 02:26:28 +02:00
commit 8514fde8b1
4 changed files with 27 additions and 34 deletions

View File

@ -89,14 +89,8 @@ static void delay (form when,
static void asmdirimm (form when,
size_index size,
//~next redo,
next data) {
/* */
//~next i;
//~for (i = 0; i < redo; ++i) {
print (when, size, data);
//~}
}
static form front (form data) { return ((data >= 4) && (data <= 7)); }
@ -359,8 +353,12 @@ void assemble (next count,
asmdirmem (1, array [index + 1]);
index += 1;
} else if (array [index] == ASMDIRIMM) {
asmdirimm (1, array [index + 1], array [index + 2]);
index += 2;
next repeat;
for (repeat = 0; repeat < array [index + 2]; ++repeat) {
asmdirimm (1, array [index + 1],
array [index + 3 + repeat]);
}
index += 2 + array [index + 2];
//~} else if (array [index] == ASMDIRREP) {
} else if ((array [index] >= REGULAR_BEGIN)
&& (array [index] <= REGULAR_END)) {

View File

@ -1,10 +1,16 @@
unix program heyo_world
s8 <> heyo = "Heyo world!"
s8 <> heyo = "Heyo world!\n"
s8 <> cyaa = "Cyaa world!\n"
begin
/*
nop mov eax 1
nop mov edi 1
nop mov esi 4198610
nop mov esi heyo
nop mov edx 12
nop syscall
nop mov eax 1
nop mov edi 1
nop mov esi cyaa
nop mov edx 12
nop syscall
*/
@ -53,27 +59,6 @@ end program
ASMDIRIMM, D8, 33,
ASMDIRIMM, D8, 10,
ASMDIRMEM, 1,
ASMDIRIMM, D8, 67,
ASMDIRIMM, D8, 121,
ASMDIRIMM, D8, 97,
ASMDIRIMM, D8, 97,
ASMDIRIMM, D8, 32,
ASMDIRIMM, D8, 102,
ASMDIRIMM, D8, 117,
ASMDIRIMM, D8, 99,
ASMDIRIMM, D8, 107,
ASMDIRIMM, D8, 105,
ASMDIRIMM, D8, 110,
ASMDIRIMM, D8, 103,
ASMDIRIMM, D8, 32,
ASMDIRIMM, D8, 119,
ASMDIRIMM, D8, 111,
ASMDIRIMM, D8, 114,
ASMDIRIMM, D8, 108,
ASMDIRIMM, D8, 100,
ASMDIRIMM, D8, 33,
ASMDIRIMM, D8, 10,
ASMDIRMEM, 2,
ASMDIRIMM, D8, 77,
ASMDIRIMM, D8, 101,
ASMDIRIMM, D8, 109,

View File

@ -176,7 +176,17 @@ int main (void) {
} else if (index == token_count) {
if (isdigit (buffer [offset - size - 1]) != 0) {
if (scope_directive) {
scope = atoi (& buffer [offset - size - 1]);
tokenize (scope);
do {
leq_string (& buffer [offset], & word, & size);
index = 0;
do {
if (word == token_leq [index]) break;
} while (++index != token_count);
offset += size + 1;
tokenize (atoi (& buffer [offset - size - 1]));
} while (--scope != 0);
scope_directive = 0;
} else {
buffer [offset - 1] = '\0';

View File

@ -6,5 +6,5 @@ nop syscall
nop mov eax 60
nop mov edi 60
nop syscall
nop . heyo db 72 db 69 db 89 db 79 db 10
nop . heyo db 5 72 69 89 79 10
end