like added everything
libs exist now
This commit is contained in:
parent
4239ceeb1c
commit
8f228059c0
7 changed files with 189 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
build/
|
23
CMakeLists.txt
Normal file
23
CMakeLists.txt
Normal file
|
@ -0,0 +1,23 @@
|
|||
cmake_minimum_required(VERSION 3.14)
|
||||
project (yes)
|
||||
|
||||
#set(CMAKE_ASM_NASM_LINK_EXECUTABLE ld)
|
||||
|
||||
|
||||
#Set C++ language version
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
#Enable ASM provided by NASM
|
||||
enable_language(ASM_NASM)
|
||||
|
||||
set(CMAKE_ASM_NASM_LINK_EXECUTABLE "gcc <CMAKE_ASM_NASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
|
||||
#add symbols
|
||||
add_compile_options(-g)
|
||||
|
||||
|
||||
add_link_options(-fno-pie -m64 -no-pie -pedantic-errors)
|
||||
|
||||
#Make a EXE with cpp and asm files
|
||||
add_library(z case.asm diff.asm length.asm)
|
||||
add_executable(example example.asm)
|
||||
target_link_libraries(example z)
|
|
@ -1,2 +1,4 @@
|
|||
# zombie-lib
|
||||
|
||||
libs that i ahve made
|
||||
|
||||
|
|
39
case.asm
Normal file
39
case.asm
Normal file
|
@ -0,0 +1,39 @@
|
|||
extern length_func
|
||||
|
||||
|
||||
section .text
|
||||
global tolower
|
||||
|
||||
tolower:
|
||||
sub rsp, 8 ;enter
|
||||
|
||||
mov r11, rdi
|
||||
|
||||
call length_func
|
||||
mov r10, rax
|
||||
|
||||
|
||||
xor rcx, rcx ;we do this to clear rcx incase it had garbage in it before
|
||||
_loop:
|
||||
;do loop things
|
||||
|
||||
mov r9, r11
|
||||
add r9, rcx
|
||||
|
||||
mov r8b, [r9] ;this block here makes sure that our character is a capital letter and if its not a capital letter do nothing and return
|
||||
cmp r8b, 90
|
||||
ja _endloop
|
||||
cmp r8b, 65
|
||||
jb _endloop
|
||||
|
||||
add r8b, 32 ;make the letter capital
|
||||
mov [r9], r8b
|
||||
|
||||
_endloop:
|
||||
;end loop
|
||||
inc rcx
|
||||
cmp rcx, r10
|
||||
jle _loop
|
||||
|
||||
add rsp, 8 ;exit
|
||||
ret
|
43
diff.asm
Normal file
43
diff.asm
Normal file
|
@ -0,0 +1,43 @@
|
|||
section .text
|
||||
global diff_func
|
||||
|
||||
diff_func:
|
||||
sub rsp, 8 ;enter
|
||||
|
||||
xor rcx, rcx ;we do this to clear garbage in rcx (i have had garbage in it before)
|
||||
_loopwasp12bsharknado:
|
||||
;loop tings
|
||||
|
||||
add rdi, rcx
|
||||
add rsi, rcx
|
||||
|
||||
mov r10b, [rdi]
|
||||
mov r11b, [rsi]
|
||||
|
||||
|
||||
|
||||
cmp r10b, r11b
|
||||
jne _differiwikeassembwy
|
||||
cmp r10b, 0
|
||||
je _notdifferiwikeassembwy
|
||||
cmp r11b, 0
|
||||
je _notdifferiwikeassembwy
|
||||
|
||||
|
||||
inc rcx
|
||||
jmp _loopwasp12bsharknado
|
||||
|
||||
|
||||
|
||||
|
||||
_differiwikeassembwy:
|
||||
mov rax, 1
|
||||
jmp _end123432345
|
||||
|
||||
_notdifferiwikeassembwy:
|
||||
mov rax, 0
|
||||
|
||||
_end123432345:
|
||||
|
||||
add rsp, 8 ;exit
|
||||
ret
|
56
example.asm
Normal file
56
example.asm
Normal file
|
@ -0,0 +1,56 @@
|
|||
extern puts
|
||||
extern length_func
|
||||
extern tolower
|
||||
extern diff_func
|
||||
|
||||
section .data
|
||||
text db "rEEEeee!EEeeeEeEEeE!EEEEEeEEE$eeeEE)EEeEeEEeeeEeEEEEEeeeEeeEeeEeeeeeEeEeEeeE",0
|
||||
text2 db "reee",0
|
||||
stoer db "0",0
|
||||
differ db "they differ",0
|
||||
notdiffer db "they dont differ",0
|
||||
section .text
|
||||
global main
|
||||
|
||||
main:
|
||||
sub rsp, 8 ;enter
|
||||
|
||||
mov rdi, text
|
||||
call tolower
|
||||
|
||||
mov rdi, text
|
||||
cld
|
||||
call puts ;this is the puts way of printing a string
|
||||
|
||||
|
||||
mov rdi, text2
|
||||
call length_func
|
||||
|
||||
add [stoer], rax
|
||||
|
||||
mov rdi, stoer
|
||||
cld
|
||||
call puts
|
||||
|
||||
mov rdi, text
|
||||
mov rsi, text2
|
||||
call diff_func
|
||||
cmp rax, 1
|
||||
je _differ
|
||||
jmp _notdiffer
|
||||
_differ:
|
||||
mov rdi, differ
|
||||
cld
|
||||
call puts
|
||||
jmp _end
|
||||
|
||||
|
||||
|
||||
_notdiffer:
|
||||
mov rdi, notdiffer
|
||||
cld
|
||||
call puts
|
||||
|
||||
_end:
|
||||
add rsp, 8 ;exit
|
||||
ret
|
25
length.asm
Normal file
25
length.asm
Normal file
|
@ -0,0 +1,25 @@
|
|||
section .data
|
||||
testasd dq 0
|
||||
section .text
|
||||
global length_func
|
||||
|
||||
length_func:
|
||||
sub rsp, 8 ;enter
|
||||
|
||||
mov r10, rdi
|
||||
_loop67865432:
|
||||
|
||||
mov r9b, [rdi]
|
||||
cmp r9b, 0
|
||||
jz _exitloop4323567
|
||||
inc rdi
|
||||
|
||||
jmp _loop67865432
|
||||
_exitloop4323567:
|
||||
|
||||
sub rdi, r10
|
||||
mov rax, rdi
|
||||
|
||||
|
||||
add rsp, 8 ;exit
|
||||
ret
|
Loading…
Reference in a new issue