Get rid of gcc, adds exit()
This commit is contained in:
@ -3,6 +3,7 @@ section .rodata
|
||||
global NR_write
|
||||
global NR_open
|
||||
global NR_close
|
||||
global NR_exit
|
||||
|
||||
global EOS
|
||||
global NL
|
||||
@ -12,6 +13,7 @@ section .rodata
|
||||
NR_write equ 1
|
||||
NR_open equ 2
|
||||
NR_close equ 3
|
||||
NR_exit equ 60
|
||||
|
||||
;ascii
|
||||
EOS equ 0x0
|
||||
|
7
core.asm
7
core.asm
@ -1,3 +1,4 @@
|
||||
extern NR_exit
|
||||
extern strclr
|
||||
|
||||
section .text
|
||||
@ -10,6 +11,7 @@ section .text
|
||||
global tolower
|
||||
global toupper
|
||||
global itoa
|
||||
global exit
|
||||
|
||||
;----- min(int a, int b) -----;
|
||||
; return value: lowest value
|
||||
@ -176,3 +178,8 @@ itoa:
|
||||
pop rax
|
||||
leave
|
||||
ret
|
||||
;----- exit(int exit_code) -----;
|
||||
; returns: nothing
|
||||
exit:
|
||||
mov rax, NR_exit
|
||||
syscall
|
||||
|
2
makefile
2
makefile
@ -1,5 +1,5 @@
|
||||
tests: tests.o constants.o core.o console.o string.o file.o
|
||||
gcc tests.o constants.o core.o console.o string.o file.o -o tests -no-pie -z noexecstack
|
||||
ld tests.o constants.o core.o console.o string.o file.o -o tests -no-pie -z noexecstack
|
||||
tests.o: tests.asm
|
||||
nasm tests.asm -f elf64 -l tests.lst -g -F dwarf
|
||||
constants.o: constants.asm
|
||||
|
@ -13,6 +13,7 @@ extern isupper
|
||||
extern tolower
|
||||
extern toupper
|
||||
extern itoa
|
||||
extern exit
|
||||
;console.asm
|
||||
extern print
|
||||
extern puts
|
||||
@ -177,8 +178,8 @@ section .bss
|
||||
strBuff1 resb 32
|
||||
strBuff2 resb 8
|
||||
section .text
|
||||
global main
|
||||
main:
|
||||
global _start
|
||||
_start:
|
||||
push rbp
|
||||
mov rbp, rsp
|
||||
|
||||
@ -809,4 +810,5 @@ main:
|
||||
%ENDIF
|
||||
|
||||
leave
|
||||
ret
|
||||
mov rdi, 0
|
||||
call exit
|
||||
|
Reference in New Issue
Block a user