Merhaba ve tekrar hoş geldiniz.
Assembly dili programlamayı anlamak için ikili ve onaltılı sayı sistemlerini bilmeniz gerekecektir.
Bu yüzden bu konuşmada kısaca bunlardan bahsedeceğim.
On tabanlı ondalık sayı sistemi.
Geleneksel olarak, sayıları temsil etmek için sıfır, bir, iki, üç, dört, beş, altı, yedi, sekiz ve dokuz rakamlarını
kullandığımız on tabanlı ondalık sayı sistemini kullanıyoruz.
Ayrıca iki tabanlı ikili sayı sistemi diye bir şey de vardır.
Bilgisayar donanımı yalnızca iki sembolü anlar: sıfır ve bir.
Sıfır düşük voltaj, bir ise yüksek voltajdır.
Dolayısıyla bilgisayar belleğindeki ve donanımındaki her şey sıfır ve birlerden oluşur. Yalnızca sıfır ve bir kullanılması ikili sayı
sistemi
veya iki tabanlı sayı sistemi olarak adlandırılır.
İki tabanında yalnızca iki basamak, yani
sıfır ve bir kullanırız.
Şimdi bunu on basamak kullandığımız on tabanı ile karşılaştırabiliriz.
Buna ek olarak, onaltılık sayı sistemi olarak da bilinen 16 tabanına sahibiz.
16 tabanlı sayı sisteminde, sayıları
temsil etmek için 16 basamak kullanırız, yani: 0, 1,
2, 3, 4, 5, 6,
7, 8,
9, A, B, C, D, E, F, burada
A 10'u, B 11'i,
C 12'yi, D 13'ü, E 14'ü ve F
15'i temsil
eder.
Şimdi, eğer bu sayı sistemleri hakkında daha fazla bilgi edinmek isterseniz, size oldukça faydalı iki referans
vereceğim.
İlki, size bir tablo gösterdiği yerdir, çeşitli sayı sistemleri arasındaki dönüşümün bir tablosu.
İlk sütun ondalık sayınızdır.
İkinci sütun hex değerinizdir ve üçüncü sütun ikili gösterimdir.
Burada ondalık sütunda görebileceğiniz gibi, 0'dan 1'e, 2'ye,
3'e, 9'a ve sonra 10'a kadar artar.
Onaltılık sistemde on, A ile gösterilir ve ikilik sistemde 1010'dur.
Ve ikili sistemde görebileceğiniz gibi, artış sıfırdan bire doğrudur.
İki 10 ile temsil edilir, üç 11, dört 100, beş 101 ve bu şekilde devam eder.
Ve bu, örneğin, 15 F'dir ve ikilik sistemde dört birdir.
Ve sonra ondalık 16 ise, onaltılık 1-0'dır ve ikilik bir ve ardından dört sıfırdır.
Ve sonra ondalık olarak 17, onaltılık olarak 11 ve ikili olarak 10001 ve bu şekilde devam eder.
Bu tablonun sonuna kadar gittiğini ve 63'ten sonra da devam ettiğini görebilirsiniz.
Burada devam ediyor: 64 ve sonra onaltılıkta 4-0.
İkilik sistemde bir ve ardından altı sıfır gelir ve ardından onaltılık sistemde 65, 41'dir ve ikilik sistemde
bir ve ardından beş sıfır ve bir gelir.
Yani bu 127'ye kadar böyle devam edebilir ve sonra buradan devam edebilir.
128 ondalık: 128 onaltılık 8-0, ikilik
bir ve ardından yedi sıfırdır ve buraya kadar gider: 191 ve onaltılıkta BF ve ikilikte
1-0 ve ardından altı birdir.
191'den sonra 192'ye ve 255'e kadar devam eder.
Yani 255, hex'te FF'dir ve binary'de hepsi birdir.
Yani bu tablo sadece 1'den 255'e kadar gider.
Şimdi, 255 dışında daha büyük sayıları dönüştürmek istiyorsanız, programlama hesaplayıcınızı kullanabilirsiniz.
Şimdi programcı hesap makinesine gidelim.
Burada en alta sağ tıklayın, "Ara "ya tıklayın ve "calc," hesap makinesi yazın, orada bulacaksınız.
Varsayılan olarak standart bir hesap makinesidir.
Bu yüzden buradaki hamburgere tıklayın ve "Programcı "yı seçin. Ve şimdi programcı hesaplayıcımız var ve burada onaltılık,
ondalık, sekizlik ve ikilik olduğunu görebilirsiniz.
Ancak biz sekizli ile ilgilenmiyoruz; sadece onaltılı, ondalıklı ve ikili ile ilgileniyoruz.
Varsayılan girişi seçmek için buraya tıklayabilirsiniz.
Diyelim ki varsayılan girdinin ondalık olmasını istiyoruz.
Bu yüzden buna tıklayın ve bire tıklayabilirsiniz ve ondalıkta bir, onaltılıkta bir ve ikilikte 0001'dir.
Ve diyelim ki bunu sildik ve 10 koyarsak, ondalıkta on, onaltılıkta A ve ikilikte 1010 olacaktır.
Bunu buradaki tabloyla karşılaştırabilir ve şunu görebilirsiniz: ondalıkta
on, onaltılıkta A ve ikilikte 1010.
Ve sonra eğer...
Şunu silelim. Ondalıkta 11, onaltılıkta B'dir.
Burada görebileceğiniz gibi, ondalık 11, onaltılık B ve ikilik 1011'dir.
Ve burada görebilirsiniz, ikili 1011'dir.
Yani çok büyük bir sayı girmek istiyorsanız, diyelim ki 1456 girmek istiyorsunuz, vb.
Yani ondalık olarak 1456, onaltılık olarak 5B0 ve ikilik olarak 10110110000.
Bu da 255'ten büyük sayıları dönüştürmenize olanak tanır.
Şunu görüyor musun?
Şimdi sayıları dönüştürmenin bir başka yolu da x64dbg'nizin kendisini kullanmaktır.
Şimdi x64dbg'yi çalıştıralım.
Ve sonra burada bir şey var.
Gördün mü?
Sonra buna tıklayın ve ardından sayıları buraya dönüştürebilirsiniz.
Bu yüzden "İmzalı" altındaki metin kutusuna gidin, "İmzalı" altına girin ve bir girin.
Yani ondalıkta bir, onaltılıkta birdir ve ikilikte tüm sıfırlar ve ardından bir gelir.
Peki ya on?
Ondalıkta on, onaltılıkta A ve ikilikte 1010'dur.
Tamam.
Peki ya başka bir numaraya ne dersiniz?
Büyük sayı diyelim: 2355. Ondalık olarak 2355,
onaltılık olarak 933 ve ikilik olarak 100100110011 şeklindedir.
Böylece sayı dönüşümü yapmak için bunu da kullanabilirsiniz.
Bu sayı dönüşümünün arkasındaki teorinin ne olduğunu bilmek istiyorsanız, sizin için iyi bir referansım
var: Khan Academy,
ikili ve onaltılık sistem hakkında ücretsiz dersler.
Bu yüzden bu ücretsiz, ücretsiz kaynağa, ücretsiz derslere gidin.
Hiçbir şeye kaydolmak zorunda değilsiniz.
Oraya gidip öğrenebilir, ikili ve onaltılı sayı sistemleri hakkında bir tazeleme kursu alabilirsiniz.
Bu size dönüşümün tam olarak nasıl yapıldığını anlatacaktır.
Ancak hızlı dönüşüm için sadece hesap makinesini veya buradaki hesap makinesini kullanmayı tercih edeceğim. Sayıları kendiniz manuel olarak dönüştürmeye
çalışmak yerine bu çok daha hızlı olacaktır.
Ancak teorik olarak arka planı anlamak için bu oldukça iyi olacaktır.
Zaten iki tabanı varken neden onaltılık tabana ihtiyacımız var?
Bunun nedeni onaltılık sayıların yer tasarrufu sağlamasıdır.
Örneğin, büyük sayıları temsil etmek istediğinizde A, B, C, D, E, F kullanabilirsiniz.
Bu da büyük sayıların kompakt bir şekilde temsil edilmesini kolaylaştırır.
Ve ikiliyi temsil etmek zordur, çünkü görebileceğiniz gibi, eğer ... Diyelim ki programı şimdi yüklersem,
tüm bunlar aslında onaltılıktır.
Hexadecimal.
Bunu 1010 olarak ikili biçimde göstermek isteseydik, çok fazla yer kaplardı.
Çok fazla yer kaplayacaktır.
Bu yüzden onaltılık kullanıyoruz.
Hex kompakttır, yani A3EC0C, hesap makinenizi kullanarak buradan kolayca dönüştürebilirsiniz.
A3EC0C yazın ve buradaki hex'e tıklayın ve E, C, 3, E, C, 0, C, 0, C'yi girebilirsiniz
ve bu size bu uzun sayıyı ikili olarak verecektir.
Ve eğer bu uzun sayıyı buraya koymak isterseniz, çok fazla yer kaplar ve deseni
tanımak da zordur.
Ayrıca bu hex formatında, her iki basamak bir bayt olarak kabul edilir.
Yani E8 bir bayttır, AE bir bayttır, 01 bir bayttır, 0C bir bayttır ve bu böyle devam eder.
Bu da onu kompakt ve kalıpları tanımayı kolay kılan şeydir.
Bu yüzden onaltılık kullanıyoruz ve burada ikili gösterimi kullanmıyoruz, ancak bunlar aslında ikilidir
ve makine düzeyinde hepsi ikilidir. Altıgen diye bir şey yoktur.
Tamam, işte bu yüzden assembly programlamada onaltılık sayı sistemine ihtiyacımız var.
Bu video için hepsi bu kadar.
İzlediğiniz için teşekkürler.