57 lines
732 B
NASM
57 lines
732 B
NASM
|
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
|