Adds closing and comma cases

This commit is contained in:
Daniel Svitan 2025-05-07 22:51:11 +02:00
parent cbedaa7f06
commit eab87f939c

View File

@ -10,6 +10,7 @@ STDERR equ 0x2
ACTION_LOOP equ 0x0 ACTION_LOOP equ 0x0
ACTION_CHAR equ 0x1 ACTION_CHAR equ 0x1
ACTION_BACK_TO_OPENING equ 0x2 ACTION_BACK_TO_OPENING equ 0x2
ACTION_BACK_TO_COMMA equ 0x3
section .data section .data
space db " " space db " "
@ -58,6 +59,12 @@ _start:
je case_opening je case_opening
cmp al, [opening_bracket] cmp al, [opening_bracket]
je case_opening je case_opening
cmp al, [closing_curly]
je case_closing
cmp al, [closing_bracket]
je case_closing
cmp al, [comma]
je case_comma
mov r15, ACTION_LOOP mov r15, ACTION_LOOP
jmp print_char jmp print_char
@ -75,13 +82,25 @@ _start:
jmp print_char jmp print_char
case_opening: case_opening:
mov r5, ACTION_BACK_TO_OPENING mov r15, ACTION_BACK_TO_OPENING
jmp print_char jmp print_char
case_opening_back:
inc byte[scope] inc byte[scope]
jmp ln_start
;je ln_start case_closing:
;jmp loop dec byte[scope]
mov r15, ACTION_CHAR
jmp ln_start
case_comma:
mov r15, ACTION_BACK_TO_COMMA
jmp print_char
case_comma_back:
mov al, [escape_next]
cmp al, 0
je ln_start
jmp loop
print_char: print_char:
mov rax, SYS_WRITE mov rax, SYS_WRITE
@ -90,8 +109,12 @@ _start:
mov rdx, 1 mov rdx, 1
int 0x80 int 0x80
cmp r15, ACTION_LOOP cmp r15, ACTION_BACK_TO_OPENING
je loop je case_opening_back
cmp r15, ACTION_BACK_TO_COMMA
je case_comma_back
jmp loop
ln_start: ln_start:
xor r8, r8 xor r8, r8
@ -103,8 +126,19 @@ _start:
imul rax, rbx imul rax, rbx
mov r9, rax mov r9, rax
mov rax, SYS_WRITE
mov rbx, STDOUT
mov rcx, endl
mov rdx, 1
int 0x80
cmp qword[scope], 0 cmp qword[scope], 0
je loop jne ln_loop
ln_end:
cmp r15, ACTION_CHAR
je print_char
jmp loop
ln_loop: ln_loop:
mov rax, SYS_WRITE mov rax, SYS_WRITE
@ -116,7 +150,8 @@ _start:
inc r8 inc r8
cmp r8, r9 cmp r8, r9
jne ln_loop jne ln_loop
je loop
jmp ln_end
end: end:
mov rax, SYS_EXIT mov rax, SYS_EXIT