Bit Manipulation

Kategori: MIPS , 16 Ekim 2019 , JanFranco


Bitler düzeyinde and, or, xor gibi mantıksal işlemler yapabiliriz. Bu işlemler için aşağıdaki instructionları kullanabiliriz:


- and

Syntax: and $d, $s, $t
Encoding: 0000 00ss ssst tttt dddd d000 0010 0100
and instruciton 3 parametre alır. İlk parametre sonucun tutulacağı register, diğer iki parametre and operasyonun gerçekleştirileceği registerlardır. Bir örnek yapalım:


	.text

li $t0, 24
li $t1, 31

and $t2, $t0, $t1
24 ve 31 sayılarını 8-bit olarak ifade edelim:


24	->	00011000
31	->	00011111
		--------AND
		00011000	->	24
AND operasyonunda iki değer 1 ise sonuç 1, değilse her zamana 0 çıkar. Burada da bu işlemi gerçekleştirdik ve sonuç 24 çıktı.


- or

Syntax: or $d, $s, $t
Encoding: 0000 00ss ssst tttt dddd d000 0010 0101
or instruciton 3 parametre alır. İlk parametre sonucun tutulacağı register, diğer iki parametre or operasyonun gerçekleştirileceği registerlardır. Bir örnek yapalım:


	.text

li $t0, 24
li $t1, 31

or $t2, $t0, $t1
24 ve 31 değerlerini 8-bit olarak gösterelim ve or işlemini uygulayalım:


24	->	00011000
31	->	00011111
		--------OR
		00011111	->	31
OR operasyonunda iki değer de 0 ise 0, değilse her zaman 1 çıkar. Burada da bu işlemi gerçekleştirdik ve sonuç 31 çıktı.


-xor 

Syntax: xor $d, $s, $t
Encoding: 0000 00ss ssst tttt dddd d--- --10 0110
xor instruction, and ve or instruction ile aynıdır. xor operasyonunda iki değer aynı ise (1-1, 0-0 gibi) sonuç 0, farklı ise sonuç 1 çıkar. Örnek yapalım:


	.text

li $t0, 24
li $t1, 31

xor $t2, $t0, $t1
24 ve 31 değerlerini 8-bit olarak ifade edelim ve xor operasyonunu uygulayalım:


24	->	00011000
31	->	00011111
		--------XOR
		00000111	->	7


Sonraki Yazı: Instruction Reference
Yorumlar

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