Assembly Kaydırma ve Yönlendirme Komutları

layef

Üye
28 Mar 2020
135
46
nowhere

Bu konumuzda Assembly'de kaydırma ve yönlendirme komutlarını örnekleriyle birlikte inceleyeceğiz. Matematik bilgimizi de biraz tekrar etmiş olacağız. Kağıt ve kalemler hazırsa konuya başlayalım.

SHR(SHIFT RIGHT)

Hedef adresteki bitler sağa doğru kayar. Hedefin en düşük seviyeli biti carry flag'a kopyalanır.

x bit sağa doğru kaydırma, operandı ' 2 üstü x ' e böler.

Örnek;



Yukarıdaki örneği açıklayacak olursak elimizde 10luk sistemde 97 değeri mevcut bunun binary değeri ise 01100001 biz bu değerin bitlerini 1 kere sağa doğru kaydırdık. 1 kere kaydırma işlemi yaptığımız için 2 üstü 1 yani 2'ye böldük sonuç 97 / 2 den 48 kalan ise 1 hedefin en düşük seviyeli biti olan 1 ise carry flag'a kopyalandı. Daha sonra en alt satırda da görüldüğü üzere sağa doğru 2 kere kaydırdık. 2 kere kaydırma işlemi yaptığımız için 2 üstü 2 yani 4'e böldük sonuç 48 / 4 den 12 kalan ise 0 herhangi bir taşma söz konusu olmadığı için carry flag 0 değeri kopyalandı.

SHL(SHIFT LEFT)

Hedef adresteki bitler sola doğru kayar. Hedefin en yüksek seviyeli biti carry flag'a kopyalanır.

x bit sola doğru kaydırma, operandı ' 2 üstü x ' ile çarpar.

Örnek;



Yukarıdaki örneği açıklayacak olursak elimizde 10luk sistemde 6 değeri mevcut bunun binary değeri ise 00000110 biz bu değerin bitlerini 1 kere sola doğru kaydırdık. 1 kere kaydırma işlemi yaptığımız için 2 üstü 1 yani 2 ile çarptık sonuç 6 x 2 den 12 ve en yüksek seviyeli biti olan 0 ise carry flag'a kopyalandı. Bir alt satırda ise sola doğru 3 kere kaydırdık. 3 kere kaydırma işlemi yaptığımız için 2 üstü 3 yani 8 ile çarptık sonuç 12 x 8 den 96 ve yine en yüksek seviyeli biti olan 0 carry flag'a kopyalandı.

SAR(SHIFT ARITHMETİC RIGHT)

Aritmetik olarak sağa kaydırılma işlemi vardır. En yüksek değerli bit de kaydırılır fakat eski değerini korur. Bu bit işaretli(signed) sayılarda "sign biti" olarak kullanılır.

En soldaki bit değişmediği için Overflow flag 0 olur.

SAL(SHIFT ARITHMETİC LEFT)

Aritmetik olarak sola kaydırılma işlemi vardır.

İkisine de örnek verecek olursak;



ROR(ROTATE RIGHT)

Bitler sağa doğru kayar. En sağdaki bit yani düşük değerli bit hem carry flag'a hem de en yüksek değerli bite kopyalanır.

Örnek;



İlk örneğe bakarsak en sağdaki bit hem carry flag'a kopyalandı hem de yüksek değerli bite kopyalandı. Aşağıdaki örnekte de aynı işlemi görmekteyiz.

ROL(ROTATE LEFT)

ROR işlemine benzer. Bitler sola doğru kayar. En soldaki bit yani yüksek değerlikli bit hem carry flag'a hem de en düşük değerli bite kopyalanır.



İlk örneğe bakalım bir adım sola kaydırıldı en soldaki bit hem carry flag hem de en sağdaki düşük değerli bite kopyalandı. Bir alttaki örnekte de aynı işlemi görmekteyiz.

RCL(ROTATE CARRY LEFT)

Sola doğru kayma işlemi gerçekleşir. Carry flag'deki değer düşük seviyeli bite kopyalanır. Yüksek değerli bit ise carry flag'a taşınır.

Örnek;



Görüldüğü üzere ilk olarak bir adım sola kaydırdık. Carry flag'deki değer düşük seviyeli bite, yüksek değerlikteki bit görüldüğü üzere carry flag'a kopyalandı ve bu işlem bu şekilde alt satırda da devam etti.

RCR(ROTATE CARRY RIGHT)

Sağa doğru kayma işlemi gerçekleşir. Carry flag'deki değer yüksek seviyeli bite kopyalanır. Düşük değerli bit ise carry flag'a taşınır.

Örnek;



Görüldüğü üzere ilk olarak bir adım sağa kaydırdık. Carry flag'deki değer yüksek seviyeli bite, düşük değerlikteki bit görüldüğü üzere carry flag'a kopyalandı ve bu işlem bu şekilde alt satırda da devam etti.

Selam ve Sevgilerle layef...


 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.