Functions in MIPS

Kategori: MIPS , 14 Ekim 2019 , JanFranco


Fonksiyonları : şeklinde tanımlayabiliriz. Bir fonksiyonu çağırmak istediğimizde jal opcode'unu kullanırız. jal instruction ile fonksiyonun adresine gideriz ve fonksiyon çalışır. Fonksiyonda ise jr instruction'ınını kullanarak fonksiyonu tamamlarız. Daha detaylı bir anlatımı örnek üzerinden yapalım:


	.data

myMsg: .asciiz "This is Jan Franco\n"

	.text

main:

	jal displayMsg

	li $t0, 5
	li $t1, 12
	li $v0, 1
	add $a0, $t0, $t1
	syscall
	
	li $v0, 10
	syscall

	displayMsg:

		li $v0, 4
		la $a0, myMsg
		syscall

		jr $ra
İlk olarak .data kısmında bir string tanımladık. Daha sonra .text bölümünde iki adet bölüm oluşturduk. main ve displayMsg. main bloğu bizim ana bloğumuz. displayMsg adında bir fonksiyon tanımladık. Bu fonskyionda v0 registerını, string basacağımız için 4 olarak ayarladık. Daha sonra a0 register'ına myMsg string'inin adresini atadık. syscall ile ekrana bastırma işlemini yaptık. Daha sonra jr $ra diyerek fonksiyonu tamamladık. main bloğunda jal displayMsg diyerek fonksiyonu çağırdık. Bu işlemi yaptığımızda fonksiyonun adresine gittik ve oradaki instruction'ları bitirdik. jr $ra instruction'ı ile jal displayMsg satırına geri döndük. Daha sonra toplama işlemi yaptık ve ekrana bastırdık. v0 register'ının değerini 10 yaptıktan sonra syscall satırını çalıştırırsak program sonlanır. Eğer programı sonlandırmasaydık tekrar displayMsg bloğuna gidecek ve oradan tekrar kodun başına dönecektik. Bu işlem sonsuz kere devam edecekti.


Sonraki Yazı: Function Arguments
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın