MIPS Assembly beq

Tanım;

  • Programlama dillerinde karar verme deyimi "if"dir. Fakat MIPS Assembly dilinde 2 adet karar komutu vardır. ( beq, bne )
  • beq ( Branch if equel) türkçe anlamıyla "eşitse dallan"dır.
  • Bu komutla 2 registeri karşılaştırıp eşitse istenilen adrese dallanılabilir.


Yazım Kuralı;

beq $s0,$s1,dallanacak_adres

$s0 : karşılaştırılacak 1.register

$s1 : karşılaştırılacak 2. register

dallanacak_adres : eğer 2 register eşitse dallanılacak ana bellek ( RAM ) adresi yada belirlenen etiket



Örnek;

MIPS Assembly Dilindeki Kod;

			addi	$s0,$s0,5       # burada i değişkenini tanımladım.
			addi	$s1,$s1,6	# burada j değişkenini tanımladım.

			beq	$s0,$s1,esit	# i ve j eşitmi onu kontrol ediyorum eğer eşitse esit etiketine dallan.
			add	$s2,$s0,$s1	# eşit değilse burayı yapsın.
			j	cikis		# eşit değilin işini yaptıktan sonra aşağıdaki kodun çalışmasını istemiyorum bu yüzden cikis etiketine dallanıyorum.
esit:		sub	$s2,$s0,$s1	# eşitse burayı yapmasını istiyorum.


cikis:			# karşılaştırma işlemleri bittikten sonraki işlemler...


Yüksek Seviye Programlama Dilindeki Kod;

int i = 5;
int j = 6;
int sonuc;

if( i == j )
	sonuc = i - j;
else
	sonuc = i + j;


MIPS Assembly dilinde yazılanla kodla yüksek seviyeli dildeki yazılan kodlar aynı işlemi yapmaktadır bunu kafanıza tam otursun diye yaptım =)