;;Programmer : MuslimLinuxUser
;;
;; Date : 22/8/23 (europe)
;;
;; time : 9:33 PM
section .data ;değeri bilinen değişkenler
header db "Benim aptal hesap makinem", 10 ;26 karakter
ayrac db "------------------------------",10 ;31 karakter
text1 db "İlk sayıyı giriniz:" ;19 karakter
text2 db "Son sayıyı giriniz:" ;19 karakter
cevap db "Sonuc:" ;6 karakter
section .bss ;değeri belirsiz bilinmeyenler
ilk resb 4 ;4 byte yer ayır
son resb 4 ;4 byte yer ayır
sayii resb 4
section .text
global _start
_start: ;ana programın olduğu yer
call _baslik ;headerı çağır
call _ayrac ;ayracı çağır
call _istek1 ;text1 i yazdırmak için istek1i çağır
call _input1 ;ilk i alacağız
call _istek2 ;text2 // // // istek2i //
call _input2 ;son u alacağız
call _sonuc ;cevap vereceğiz
mov rax, ilk
add rax, son
mov rax, rbx
call _sayi
mov rax, 60 ;temel kapatma
mov rdi, 0 ;hata olmadığını bildirmek
jmp _start ;loop yapmak için
syscall ;kernelden yardım isteme
_baslik: ;başlığımız
mov rax, 1 ;standart yazdırma
mov rdi, 1 ;standart output
mov rsi, header ;yazdırılıcak değişken:header
mov rdx, 26 ;26 byte(karakter: ASCII de her karakter 8 bit yani bir byte) yer ayır
syscall ;kernelden yardım iste
ret ;geri dönüş yap
_ayrac: ;ayracımız
mov rax, 1 ;standart yazdırma
mov rdi, 1 ;standart output
mov rsi, ayrac ;ayracı yazdır
mov rdx, 31 ;31 byte(karakter) yer ayır
syscall ;kernelden yardım iste
ret ;geri dönüş yap
_istek1: ;ilk sorumuz
mov rax, 1 ;standart yazdırma
mov rdi, 1 ;standart output
mov rsi, text1 ;text1 i yazdır
mov rdx, 19 ;19 byte(karakter) yer ayır
syscall ;kernelden yardım iste
ret ;geri dönüş yap
_input1: ;ilk inputumuz
mov rax, 0 ;standart write
mov rdi, 0 ;standart input
mov rsi, ilk ;ilki al
mov rdx, 4 ;4 byte yer ayır
syscall ;kernelden yardım iste
ret ;geri dönüş yap
_istek2: ;son sorumuz
mov rax, 1 ;standart yazdırma
mov rdi, 1 ;standart output
mov rsi, text2 ;text2 i yazdır
mov rdx, 19 ;19byte(karakter) yer ayır
syscall ;kernelden yardım iste
ret ;geri dönüş yap
_input2:
mov rax, 0
mov rdi, 0
mov rsi, son
mov rdx, 4
syscall
ret
_sonuc:
add rax, 48
mov rax, 1
mov rdi, 1
mov rsi, cevap
mov rdx, 6
syscall
ret
_sayi:
add rax, 48
mov rax, 1
mov rdi, 1
mov rsi, rbx
mov rdx,4
syscall
ret