Bilgisayar mimarisi dersi için hazırlanmış bir örnek. Mips for loop örneği. For döngüsünün mips mimarisinde kullanımı.

Mips For Kullanımı

Diğer dillerden sonra mips görmek biraz zorlayıcı olabiliyor. Ancak buna rağmen uğraşması zevk veriyor. Tabi şuan başlangıç aşamasındayım. Basit bir işlem için yazılan onca satır kod, işlemler biraz zorlaştığında içinden çıkılamayacak bir hal alabilir.

for(i=0; i<10; i++)
{ 
a+=b;
}

Bu örneği mips’te a ve b değişkenlerine değer vererek yapıyoruz.

Mips For Loop Örneği

	.data
msg1:	.asciiz	" : bitti"
	.text
	.globl	main
main:
li $t0, 10
li $t1, 0
li $t2, 2
li $t3, 1
loop:addi $t1,$t1,1        #t1 for döngüsünün sayacı olarak kullanıldı
	add $t3,$t2,$t3    #t2+t3=t3
	beq $t0,$t1,exit   #t1 10 olduğunda döngüden çık
	j loop             #üst satırda döngüden çıkılmadı ise loop'a dön.
exit: li $v0,1        #int değeri yazdırma komutu atıldı
move $a0, $t3         #son t3 yazdırılmak için atıldı
syscall
li	$v0,4         
#string değeri yazdırma komutu atıldı
la	$a0, msg1     #mgs1 yazdırılmak için atıldı
syscall
li	$v0,10        #çıkış işlemi yapıldı
syscall

Bu mips’te yapmış olduğum ilk örnek. Mimari olarak bana biraz karışık gelse de ilk çıkan Sony playstation işlemcilerinin bu mimarı ile çalışması konuya olan ilgimi artırdı. Basit bir for döngüsü için bu kadar kod yazdı isem acaba bu cihazların işlemcileri nasıl çalışıyordu diye merak ettim.