Merhaba ve tekrar hoş geldiniz.
Bu derste, bir sonraki komut olan NEG komutuna göz atacağız.
NEG olumsuzlamak anlamına gelir. Örneğin, NEG - . Yani ikiye tümleyen yöntemini kullanarak sayının işaretini değiştirir.
Yani, tüm bitleri çevirir ve ardından sayıya bir ekler.
İşte bir örnek.
MOV
- , 0x3.
Bu yüzden üçü - .
- kaydı için en alttaki bayttır.
Sekiz bit uzunluğundadır.
Bu da - register'ın görselleştirilmesidir.
Bir, ikilik sistemde bir, üç demektir.
Yani bir NEG - komutu gerçekleştirdiğinizde, tüm bunları orijinal bitlerin tersi olacak şekilde çevirir.
Böylece tüm sıfırlar bir olacak.
Tüm birler sıfır olacak.
Ve sonra ona bir tane ekler ve bunu
elde edersiniz.
Yani bu negatif bir sayı.
Yani bu eksi üç.
Daha önce çalıştığımız gibi, ikinin tamamlayıcısının anlamı budur.
Şimdi pratik bir örneğe göz atalım.
MOV - , bir. Negate - .
Yani - 'yi olumsuzladığınızda, bu bir negatif olur.
Ve sonra olumsuzladığınızda - tekrar, olumlu bir hale gelir.
Şimdi bunu x64dbg'de deneyelim.
Şimdi x64dbg'nizi açalım ve ardından şablon olanı açıp bu kodu girelim.
Buraya. Önce MOV - , bir, ardından NEG - , ardından tekrar NEG - gelir.
Şimdi bu dosyayı kaydedebiliriz. Onu kurtaralım.
4040-neg olarak kaydedeceğiz. asm.
Bunu kapatalım ve yeni dosyayı açalım.
Buraya bir kesme noktası koy.
Ve koş. Bir kesme noktasına çarpıyor.
Şimdi bir, iki hareket edeceğiz. Bir adım atarsak, artık bir tane olduğunu görürüz.
Ve sonra bunu olumsuzladığımızda, bunu negatif olana dönüştüreceğiz. Bir adım attığınızda negatif olduğunu görürsünüz.
Yani aslında olumlu
bir şeydi. Şimdi negatif bir hale geldi. Ve sonra şimdi tekrar olumsuzlarsınız; pozitif bire geri döner.
NEG, yani olumsuzlama operatörünün anlamı budur.
Bu video için hepsi bu kadar.
İzlediğiniz için teşekkürler.