Shifting Operations

Kategori: MIPS , 15 Ekim 2019 , JanFranco


Bitler düzeyinde shifting operasyonu gerçekleştirmek için sll ve srr instructionlarını kullanabiliriz. sll açılımı shift left logical, srl açılımı shift right logical'dır:


- sll

Syntax: sll $d, $t, h
Encoding: 0000 00ss ssst tttt dddd dhhh hh00 0000
Bu instruction $t değerini sola h kadar shift eder ve sonucu $d register'ına yazar.


- srl

Syntax: srl $d, $t, h
Encoding: 0000 00-- ---t tttt dddd dhhh hh00 0010
srl instruction $t register'ını h kadar sağa kaydırır, sonucu $d register'ına yazar. Shift instruction'larını gördük. Shifting operasyonunun nasıl olduğunu da görelim:


Ondalık		Binary
-------		------
24	    ->	00001000 (8-bit)
8-bitlik binary sayıyı sola shift edelim:


00010000
Görüldüğü gibi sağ tarafa bir 0 eklendi. Sol taraftan da haliyle bir bit eksildi. Bu şekilde sayı 48 olmuş oldu. Her sola shift ettiğimizde sayı iki ile çarpılır. Sağa shift ettiğimizde sayı ikiye bölünür. Örnek yapalım:


li  $t0, 12
sll $t1, $t0, 1
t0 registerına 12 değerini atadık. sll instruction ile t1 registerına sonucu yazacağız. t0 registerındaki değeri 1 bit sola shift edeceğiz. Böylelikle sonucu 24 olarak görürüz.


Sonraki Yazı: For Loop
Yorumlar

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