💀 Adds constants
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
SYS_EXIT equ 0x1
|
||||
SYS_READ equ 0x3
|
||||
SYS_WRITE equ 0x4
|
||||
|
||||
STDIN equ 0x0
|
||||
STDOUT equ 0x1
|
||||
STDERR equ 0x2
|
||||
|
||||
section .data
|
||||
space db " "
|
||||
endl db 10
|
||||
backslash db "\\"
|
||||
quote db "\""
|
||||
opening_curly db "{"
|
||||
opening_bracket db "["
|
||||
closing_curly db "}"
|
||||
closing_bracket db "]"
|
||||
comma db ","
|
||||
colon db ":"
|
||||
|
||||
section .bss
|
||||
char resb 1
|
||||
exitCode resb 1
|
||||
scope resb 1
|
||||
in_string resb 1
|
||||
escape_next resb 1
|
||||
|
||||
section .text
|
||||
global _start
|
||||
|
||||
_start:
|
||||
mov byte[exitCode], 0
|
||||
mov byte[scope], 0
|
||||
|
||||
loop:
|
||||
mov rax, SYS_READ
|
||||
mov rbx, STDIN
|
||||
mov rcx, char
|
||||
mov rdx, 1
|
||||
int 0x80
|
||||
|
||||
cmp rax, 0
|
||||
jle end
|
||||
|
||||
mov rax, SYS_WRITE
|
||||
mov rbx, STDOUT
|
||||
mov rcx, char
|
||||
mov rdx, 1
|
||||
int 0x80
|
||||
|
||||
cmp byte[char], 0x61
|
||||
je indent
|
||||
|
||||
jmp loop
|
||||
|
||||
indent:
|
||||
mov rax, SYS_WRITE
|
||||
mov rbx, STDOUT
|
||||
mov rcx, space
|
||||
mov rdx, 1
|
||||
int 0x80
|
||||
jmp loop
|
||||
|
||||
end:
|
||||
mov rax, SYS_EXIT
|
||||
mov rbx, [exitCode]
|
||||
int 0x80
|
||||
Reference in New Issue
Block a user