Bu sitede bulunan bütün bilgi ve araçlar SADECE eğitim amaçlıdır, ne niyetle kullandığınız sizi bağlar ve sizin sorumluluğunuzdadır! [Demedi deme]

Hacker'ın Olmazsa Olmazı - Assembly #0 Girişten Önce Son Çıkış

Tarih 20 Şubat 2013. KATEGORI Bilisim

Başlıktan anlaşılacağı üzere ilk yazımız, temel bilgileri tekrarlayarak mevcut bilgilerinizi kontrol etmenizi ve bundan sonraki yazılarda karşımıza çıkacak teknik konuları anlamanızı sağlamak üzerine hazırlanmıştır.Benim temel bilgim var diyenler bu yazıyı direk atlayabilirler ancak tekrar gözden geçirilmesini şiddetle tavsiye ediyorum.

Öncelikle konu başlıklarımıza bir göz atalım:

Sayı nasıl sayılır ?

61 dediğimiz sayı aslında 10lu sayma (sayı mı sayma mı?) sisteminde:
1 carpı 10 üzeri 0 -> 10 üzeri 0 = 1 , 1 çarpı 1 = 1 koyduk kenara,
6 çarpı 10 üzeri 1 -> 10 üzeri 1 = 10 , 6 çarpı 10 = 60 yani,
60 artı 1 = 61 [çok basit geldi galiba?]

Peki 3d sayısı (evet sayısı) 16lı sayma sisteminde:
16lı sayma sistemini hatırlarsak (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)
d çarpı 16 üzeri 0 -> 16 üzeri 0 = 1 , 1 çarpı d (yani 13) = 13
3 çarpı 16 üzeri 1 -> 16 üzeri 1 = 16 , 3 çarpı 16 = 48
48 artı 13 = 61

10lu sayma sistemindeki 61 eşittir 16lı sayma sisteminde 3d diyebilir miyiz? Matematik öyle diyor.
Bu arada şu detayı da belirtmekte fayda var.Bir sayı 16lı sayma sisteminde belirtiliyor ise yani hexadecimal bir sayıdan bahsediyorsak 3dh veya 0x3d şeklinde gösterilir.

Peki bilgisayar dünyası için yeterli mi? Malesef değil!

111101 sayısı 2li sayma sisteminde:
Abi istersen sen tek tek yap ama burada yapılmışı var 1 + 4 + 8 + 16 + 32 = 61
2li sayma sisteminde (binary) sayılar 0b111101 şeklinde gösterilir.

61 = 0x3d = 0b111101 diyebiliriz.

Hesaplamalar için google'da şunları yapabiliyoruz:

1453 in binary
0x1453 in decimal
0b10011101 in hex

Hesap kitap işleri tamamsa gelelim şu bit - byte mevzularına:

Bit latincede Phthiraptera denilen,eklembacaklı bir hayvandır da bize lazım olan bit bu bit değil.
Binary digit kısaltması olan bit, 2li sayma sistemindeki tek bir haneye verilen isimdir ve doğal olarak alabileceği 2 değer vardır.0 veya 1 = yanlış veya doğru = kapalı veya açık gibi.
8 haneli bitlere byte diyoruz.Alabileceği en yüksek değer olarak:

1 byte (8 bit)  = 0b11111111 = 0xff = 255 
2 byte (16 bit) = 0b1111111111111111 = 0xffff = 65535
3 byte (24 bit) = 0b111111111111111111111111 = 0xffffff = 16,777,215
4 byte (32 bit) = 0b11111111111111111111111111111111 = 0xffffffff = 4,294,967,295
...
8 byte (64 bit) = (Herşeyi devletten beklememek lazım di mi?)

Dikkatinizi çeken birşey var mı?
Sayılar büyüdükçe binary basamaklar başaçıkılmaz hale,decimal ise hatırlaması zor bir hale geliyor.Fakat hexadecimal çok daha kolay gözüküyor.Bu yüzden hafıza adresleri için hex kullanıyoruz.Devam edelim:

1024 byte = 1 Kilobyte , 1024 KB = 1 Megabyte , 1024 MB = 1 Gigabyte , ...
4 GB -> 4 * 1024 * 1024 * 1024 = 4,294,967,295 byte ederse o zaman
4 GB = 4 byte ?! Kayış kopmak üzere mi, kopartmadan açıklayalım.

Teknik konuları anlamak için sadece okumak yeterli olmuyor malesef.Öncelikle ÇOK dikkatli okumalı ve bol bol pratik yapmanız gerekiyor.Bu uyarıdan sonra sorunun açıklamasına gelirsek az yukarıdaki görüyoruz ki 4 byte yani 32 bit kullanarak belirtebileceğimiz EN YÜKSEK değer 4 GB'ın (4 byte) karşılığıdır. Buradan bir sonuç çıkartabilir miyiz?
Eğer bilgisayarınızdaki RAM 4 GB'dan daha yüksek ise ve tamamını kullanmak istiyorsanız 64 bit bir işletim sistemi kullanmaya mecbursunuz.

Sayı saymayı da öğrendiğimize göre şu bilgisayar dedikleri de neymiş bir bakalım.

Bilgisayar nedir? Nasıl çalışır?

Yaklaşık 4500 sene önce hesaplama amaçlı icat edilen ilk cihaz olan "abaküs", elektriğin icat edilmesi ve takip eden araştırmalar neticesinde yerini son yüzyılda "bilgisayar, computer - hesap yapan" cihazına bırakmıştır.Günümüzdeki kullanılan şekli itibariyle (işlemci - hafıza ikilisi bazlı) bilgisayarın mucidi olarak Von Neumann gösterilmektedir.

Peki bu bilgisayarlar nasıl çalışıyor diye sorduğumuzda "düğmesine basarak" esprisini geçersek aslında bir oda lambasını açıp kapatan düğmeden hiç bir (bilgisayarda milyonlarca düğme olması haricinde) farkı olmadığını görüyoruz. Meşhur düğmemize bastığımız anda elektrik akımı sayesinde bilgisayarın bileşenleri arasında iletişim kuruluyor ve etkileşim başlıyor.Bizim için ilk etkileşim tabii ki ekrana görüntü gelmesinden başka birşey değil.

İlk bilgisayar nasıl birşeydi acaba diyenlere gelsin sıradaki resmimiz:

Spotlight Image
Bu resim A.B.D ordusuna aittir.

Madem ki Assembly (makine dili) öğrenicez, o zaman bu makinenin bazı kısımlarını çok iyi tanımamız gerekiyor. Bunlar İşlemci (CPU) ve Hafıza (RAM)

İşlemci ve Hafıza?

1950li yıllardan günümüze kadar hızla gelişen ve evrimleşen işlemciler, farklı görevler üstlenen birçok bileşenden oluşan silikon dioksit bazlı yarı-iletken (semi-conductor) maddedir.[Açıklama cuuk diye oturdu diyemem ama bunun gibi birşey işte :)]
İşlemcinin çalışma şeklini anlayabilmek ve programlamak için bu bileşenleri bilmek çok önemlidir.

Program Counter ( Sayaç )
İşlemciler komutları hafızadan okur ve çalıştırır.Bu bileşen işlemciye okuması gereken bir sonraki komutun hafızada hangi adreste kayıtlı olduğunu söyler.

Instruction Decoder ( Komut çözücü )
Hafızadaki kayıtlı adresten komutu alan işlemci,bu komutla istenilenin ne olduğunu,ne yapması gerektiğini (toplama,çıkarma,..) ve başka bileşenleri işin içine katıp katmaması gerektiğini bu bileşen sayesinde anlar.

Data Bus (Veriyolu)
İşlemci diğer donanımlar (özellikle hafıza) ile iletişimini bu bileşeni kullanarak sağlar.

Registers (Kaydediciler)
İşlemcinin veriyolu ile ulaştığı hafıza (RAM) haricinde kendine ait çok hızlı çalışan hafıza bölümleri yani kaydedicileri bulunmaktadır.Matematiksel olaylar (karşılaştırmalar da dahil olmak üzere, 0 1'e eşit mi?) bu kaydediciler KULLANILARAK gerçekleşmektedir.

Şimdilik fazla detaya girmiyoruz,sadece listeleyip geçiyoruz.

  • EAX
  • EBX
  • ECX
  • EDX
  • ESI
  • EDI

Special Purpose Registers (Özel amaçlı kaydediciler):

  • EBP
  • ESP
  • EIP
  • EFLAGS (bir sürü var,mesela CF PF AF gibi)

Segment Registers (Aynısından 1.5 yoortlu,yalnız bunlar 16 bit):

  • CS
  • DS
  • ES, FS, GS
  • SS

Registerlar konusuna işletim sistemleri kısmında tekrar gelicez.[Bitmedi mi? Biter mi be abii]

Arithmetic and Logic Unit (Aritmetik ve Mantıksal birim)
Komut hafızadaki adresten alındı,işlemci komutu çözdü,neleri ihtiyacı varsa hepsini hazırladı ve bu birim sayesinde işlemin sonucunu elde ediyoruz.[Ne zormuş bu sonucu elde etmek!]

CPU hakkında limitli (!)de olsa bilgi sahibi olduğumuza göre şimdi de RAM hakkında biraz detay verelim.

RAM dediğimizde aklımıza apartman dairelerinin girişlerindeki posta kutuları gelebilir.

Spotlight Image
Bu resimin telif hakkı bu firmaya aittir.

İşlemci veriyolu vasıtasıyla (resimdeki güvercin misali) ihtiyacı olan bilgileri kayıtlı olduğu posta kutusu numarasından isteyip, işlem sonucunu yine posta kutusunun başka bir numarasına kaydedebilir.

Bilmemiz gereken en önemli detay ise bu posta kutusu numaralarını nasıl belirtebiliriz.Mesela hedef posta kutusu numaramız 26 olsun. Seçenkleri sıralıyalım:

* Direk 26 [0x26],
* Endirek 26 [10 nolu kutuda 0x26 yazılı bir mektup var diyelim, 0x10 kutunun içeriği]
* 23den 26ya [0x23 + 3],
* 20li sayılar , tek tek atla , 6 sefer [0x20 + 1 * 6]

Hafızaya erişim metodları ilk bakışta karmaşık gibi gözükse de Assembly dili için çok önemli bir mevzu. İlerleyen bölümlerdeki videoları izleyerek bu konuyu rahatlıkla çözebilirsiniz. Şimdilik bu önbilgi yeterli diyor ve işletim sistemlerini inceleyerek devam ediyoruz.

İşletim sistemleri ?

Aklınıza hemen Windows (tescilli marka felan filan) gelmiş olsa da konumuz işletim sistemlerini listelemek değil, nasıl çalıştığını anlamak. Bilgisayarınızı açtınız, anlamadığınız (veya anladığınız) birçok yazıdan sonra masaüstünüz karşınızda.Peki bu ekran gelene kadar neler oldu?
Elektrik geldi,bütün donanımlara hayat verdi,birbiriyle iletişim kurdular, oOoOoOo efendim ses kartı da burdaymış, patron yeni harddisk almış,tanışma faslı derken, harddiskinizde kayıtlı olan işletim sisteminiz, burası ÇOK ÖNEMLİ kernel yani çekirdek yüklendi.İşte bu kernel donanım ile yazılım arasında boru hattı görevi gören irtibat subayıdır.

Mesela bir program yazdık ve ekrana "Merhaba Dünyalı" yazsın istiyoruz.Bütün kodları girdikten sonra Kerneli sahneye çağırmadığınız sürece ekranda hiçbirşey göremezsiniz.Kullanıcı kerneli sahneye çağırarak işlemci ile yazılım arasında köprü kurmuş oluyor.(gibi gibi) Yani programımız kullanıcı modundan kernel moduna geçiş yapıyor. (User mode -> kernel mode durumu) Peki nasıl?

Hemen örneklendirelim:
int $0x80
Operasyon kodumuz (opcode) -> int yani interrupt
Operasyon değerimiz 0x80 -> kernel sahneye

Kernel sahneye geldi ama ne yapacağını nereden biliyor ?
İşte burada devreye registerlar giriyor ve eax registerındaki değere bakıyor.Eğer bu değer 4 ise ekrana birşeyler yazılmasını istediğimizi anlıyor.4 ne alaka diye soranlarınız için bu bir sistem çağrı (system call) numarası. [Detaylar ilerleyen bölümlerde]

Buradan ne gibi sonuçlar çıkarıyoruz?
Assembly programları yazmak için kernel sistem çağrılarını iyi bilmemiz gerekiyor.Bu arada her işletim sistemi için farklı numaralar kullanıldığını düşünürsek, Linux için yazılan bir programı Windowsta neden kullanamadığınızı buradan anlayabilirsiniz. (Tek sebep bu değil tabii ki)

Spotlight Image
Bazı işletim sistemleri düşündüğünüzden daha tehlikeli olabiliyor.

İşletim sistemlerinin çalışma prensibi hakkında kısa bilgilendirmeden sonra matematik kısmına kısa bir dönüş yapıyoruz.Günümüzde kullanılan işletim sistemlerinin birçoğu (nerdeyse hepsi) size 2 seçenek sunar:

32 bit veya 64 bit. Yukarıda neden 64 bit kullanmamız gerektiği anlatılmıştı şimdi biraz daha detaya girelim.Farz-ı misal,velev ki,örnek vermek gerekirse [benim kayışın da ara sıra sıyırdığı oluyor :)]

32 bit işletim sistemiz var , eax registerında 0x20121110 (gibi bir tarih değeri olsun) değeri var.İşlemciye soruyorum eax'ta değer nedir?Cevap geliyor.Peki 4 byte olan bu değerin ilk byte değerini veya 2. byte değerini veya 1. ve 2. byte değerini birlikte isteyebiliyor muyum?Hemen görelim:

al (l harfi low yani düşük demek) 1. byte = 0x10 [8 bit, 8086 işlemciler]
ah (h harfi high yani yüksek demek) 2. byte = 0x11 [8 bit]
ax (ah + al, pair yani ikili) yani ilk 2 byte = 0x1110 [16 bit, 286 işlemciler]
eax zaten değerimiz 4 byte = 0x20121110 [32 bit, 386 işlemciler]

Not: Intel Itanium işlemcilerden başlayarak günümüzde üretilen bütün işlemciler 64 bit özelliğine sahiptir.

Peki bu anlattıklarımızın temeli nereye dayanıyor?
Tabii ki eski işlemci ve bu işlemcilere uygun hazırlanan işletim sistemlerine.
Eskiden 32 bit işletim sistemleri yok iken (M.Ö bilmemkaç) 16 bit işletim sistemlerinde eax registerının adı ax idi,ondan öncesini zaten öğrendiniz. Zaten eax extended acc.. x(matematikteki herhangi bir değeri ifade eden x) buradaki extended genişletilmiş manasına geliyor.
Peki 64 bit işletim sistemlerinde eax ne oluyor? Karşınızda meşhur olmasına ramak kalan artistimiz rax yani larger accum... (larger = daha geniş) [baktılar 2 tane r harfi var,adını r koyalım demişler :)]

Hani şurada Little Endian konusuna girmem lazım ama bir girersem çıkamam + niyetli olan arkadaşların çoğu vazgeçebilir ondan ben vazgeçiyorum,ileride mecburen giricez.

Bu azıcık (!) detaydan sonra Assembly konusuyla devam edelim.

Assembly ve tarzları?

Assembly hakkında detaylı bilgiyi bu adresten okuyabilirsiniz.Assembly tarzlarını incelemeye başlamadan önce konuyu daha kolay anlamak için bir örnek verelim:

6 sayısı Türkçede altı olarak yazılırken İngilizcede six olarak yazılıyor.Peki ifade edilen şey aynı mı? Aynı.

Bir de kafa karıştırabilecek örnek verelim:

50 sayısı italyancada cinquante (çinkuante) olarak yazılırken fransızcada cinquante (senkant) olarak yazılıyor.Yazılış aynı olsa da telaffuz farklı ama ifade edilen şey yine aynı.

Peki konumuzla alakası nedir?

Assembly programlama için mevcut 2 tarz (syntax) var,birisi Intel diğeri AT&T.Aradaki farkı görebilmek için bir örnek verelim:

mov %eax, %ebx (AT&T tarzı)
eax registerındaki değeri ebx registerına taşı, önce kaynak sonra hedef

mov ebx, eax (Intel tarzı)
Aynı komut fakat önce hedef, sonra kaynak.Bu arada yüzde işareti kullanmıyoruz.

Peki aradaki fark ne ve hangisini öğrenmek daha çok işimize gelir?

Intel firması bütün kaynaklarını doğal olarak kendi tarzında yayınlamaktadır ve bu tarz Microsoft firmasına ait bütün işletim sistemlerinde standarttır.AT&T tarzı ise Unix için geliştirildiğinden Linux işletim sistemlerinde standarttır.

Kimileri AT&T tarzının daha kolay okunduğunu söylese de Intel tarzını öğrenmek çok daha mantıklıdır.Çünkü Linux işletim sistemi için de Intel tarzı derleyici (compiler) ve ayıklayıcı (debugger) bulunmaktadır. Böylece hem Windows hem Linux için Assembly programları yazabilir, yazılanları inceleyebilirsiniz.

Başlıyoruz !

Yazının bu kısmına kadar gelmeyi başardıysanız umut var demektir.[Vazgeçmeyi düşünmüş olsanız da :)]

Son olarak kullanacağımız donanım ve yazılımı belirtelim.

İşletim sistemi : Mint 14 (Linux)
İşletim sistemi : 32 bit (bu detaya dikkat!)
Derleyici : NASM
Ayıklayıcı : GDB (Intel tarzı)
Metin editörü : Nano

Son mesaj ?!

Yorumlar (47)

  • Murat

    Murat

    02 Nisan 2013 23:08 zamanında |
    Ellerinize agzınıza saglık biraz yaymak lazım sanırım postu :) Kimse yorumyazmamış süper bir iş gecegece iyi geldi.

    yanıtla

    • K.A.

      K.A.

      07 Nisan 2013 09:34 zamanında |
      EyvAllah Murat,
      Bu sıkıcı bölümler sana iyi geliyorsa,ilerleyen bölümleri düşünmek istemiyorum :)

      yanıtla

  • talat

    talat

    19 Nisan 2013 11:58 zamanında |
    valla eline sağlık abi, öğrenirsem senn sayende örnecem inşallah bu dili.

    yanıtla

    • K.A.

      K.A.

      20 Nisan 2013 20:44 zamanında |
      Talat,
      Başlarda zor gelir ama hiç de kasacak bir durum yok,vazgeçme yeter.Bu arada kafana takılan olursa gel twitterdan sor,çekinme.

      yanıtla

  • talat

    talat

    20 Nisan 2013 23:34 zamanında |
    tamam abi allah razı olsun senin de yardımınla öğrenecem inşallah

    yanıtla

  • Cihan

    Cihan

    23 May 2013 21:43 zamanında |
    Eline koluna, yüreğine sağlık hocam. Çok yol kat etmek gerekicek, çok geceler uykusuz kalmamız gerekicek, ammavelakin bu yoldan şaşmamamız gerekicek :) Allah razı olsun. Rabbim'im rahmeti, bereketi, hidayeti ve merhameti üzerinde olsun. Selametle. (Şimdilik gidiyorum, tekrar ve her daim gelicem :) )

    yanıtla

    • K.A.

      K.A.

      23 May 2013 22:31 zamanında |
      Cihan,
      Sırf senin yaptığın şu dua, harcadığım saatlere fazlasıyla değdi.Amin ecmain, beklerim her daim.

      yanıtla

  • yusuf

    yusuf

    08 Ağustos 2013 16:03 zamanında |
    Kenan abi eline savlik senin kadar kalemi kuvvetli yazilimci gornedim cok akici ve sade anlatiyosun paylasimlarinin devamini merakla bekliyorum eline saglik bayramin mubarek olsun

    yanıtla

    • K.A.

      K.A.

      11 Ağustos 2013 21:03 zamanında |
      EyvAllah Yusuf, sağolasın. Bilmukabele, senin de bayramın mübarek olsun

      yanıtla

  • Efe

    Efe

    16 Ağustos 2013 09:20 zamanında |
    Hocam eline koluna emeğine sağlık. Derslerinize bu gün itibari ile başladım. Çok hoş, akıcı ve sıkmayan bir anlatım tarzınız var. Bizde de biraz temel var, akıp gidiyor mübarek :)
    Yalnız sormak istediğim bir şey var siz mint dağıtımlarından hangisini kullanıyorsunuz?

    yanıtla

    • K.A.

      K.A.

      20 Ağustos 2013 07:04 zamanında |
      Teşekkür ederim Efe. Videolarda kullandığım 32 bit - Mint 14 MATE. Önemli olan 32 ya da 64 bit olması yoksa Cinnamon ya da Xfce olmuş farketmez.

      yanıtla

  • Doğukan Han

    Doğukan Han

    31 Ekim 2013 04:13 zamanında |
    Hocam eline sağlık gerçekten süper bir paylaşım , bu günlerde senin gibi bilgi vermek insanlar kalmadı herkes kendisine sakliyor .

    yanıtla

    • K.A.

      K.A.

      04 Kasım 2013 13:44 zamanında |
      "İnsanların en hayırlısı, insanlara faydalı olandır." Hz. Muhammed (s.a.v.)

      yanıtla

  • Dünya misafiri

    Dünya misafiri

    15 Kasım 2013 13:31 zamanında |
    peki bilgisayar 16 gb ram. yine de 32 bitlik mint mi kurmak lazım bu işler için? Bu arada firefox'ta captcha çıkmıyor haberiniz olsun efem.. Bu nedenle tordan yolluyorum... ;)

    yanıtla

    • K.A.

      K.A.

      15 Kasım 2013 20:37 zamanında |
      Benim anlattıklarım hepsi 32 bit, VMWare Playerden ayır 2 GB Ram babalar gibi yeter de artar bile. Tordan gelen uzaylı mı, onlar da misafir , captcha çıkmazsa çıkmasın :)

      yanıtla

  • HasanFatih

    HasanFatih

    04 May 2014 06:23 zamanında |
    Hocam Türkçe kaynağın kısıtlı olduğu bir alanda çok değerli paylaşımlar yapmışsınız. İngilizce adamı yoruyor hakikaten.Bu bilgiler özellikle Bilgisayar ORG. ve Tasarımı dersinde faydalı oldu. Herşey için teşekkür ediyorum allah uzun ömürler versin size . Bu arada bir sorunumuz olduğunda size twitter'dan mı ulaşıyoruz hocam ?

    yanıtla

    • K.A.

      K.A.

      04 May 2014 14:28 zamanında |
      Allah razı olsun Fatih. Iletişim bölümünden gönder mesajını, vakit buldukça yardımcı olmaya çalışıyorum.

      yanıtla

  • Ensar

    Ensar

    01 Eylül 2014 18:10 zamanında |
    abi çok saol türkiyede başka bi yerde böle anlatım yok allah razı olsun senden.Senden c++ memory hacking gibi derslerde bekliyorz

    yanıtla

    • K.A.

      K.A.

      03 Eylül 2014 21:50 zamanında |
      Ensar kardeşim, sağolasın. Tahminimce heap overflowlardan bahsediyorsun ama uzun süredir yeni yazı ekleyemedim, yakında devam edicem inşAllah.Kernel serisine devam ediyoruz, ne zaman ekleriz böyle bir konu şimdilik bişey diyemicem..

      yanıtla

  • ahgq7

    ahgq7

    12 Nisan 2015 11:05 zamanında |
    Ubuntu 14.04 kullanıyorum, yine de Mint yüklemem gerekiyor mu bunlar için? Eğer gerekiyorsa son sürümünü (Mint 17) yüklesem olur mu?

    yanıtla

    • K.A.

      K.A.

      29 Nisan 2015 09:29 zamanında |
      Hiç farketmez kardeşim, 32 bit linux olduktan sonra hepsi olur, sen yeter ki bırkalamak iste..

      yanıtla

  • Enes

    Enes

    14 Nisan 2015 16:25 zamanında |
    Öncelikle çok teşekkürler. Ancak benim bir iki sorum olacak. Windows'a VirtualBox ile linux kursam aynı işlemleri yapabilir miyim?

    yanıtla

    • K.A.

      K.A.

      29 Nisan 2015 09:30 zamanında |
      Yaparsın Enes kardeşim, benim çektiğim videolar da aynen böyle..

      yanıtla

  • Enes

    Enes

    21 Haziran 2015 13:02 zamanında |
    Hocam , Bende Win 8.1 64 bit işletim sistemi var. Bir Assembler kullanmam için 32 bit işletim sistemi mi gerekli?

    yanıtla

    • K.A.

      K.A.

      28 Haziran 2015 00:37 zamanında |
      Benim anlattıklarımı pratik yapmak için 32 bit bir Linux işletim sistemine ihtiyacın var ama windows kullanıyosan burada anlatılanlar hiç bi işine yaramaz. İşletim sisteminin 64 bit olması sadece işi biraz karmaşıklaştırıyor o kadar ..

      yanıtla

  • Yusuf

    Yusuf

    06 Temmuz 2015 20:54 zamanında |
    Abi sanırım bırakmışsın bloğu ama devam etsen çok iyi olur şimdiye akdar böyle kaynak görmedim ben allah razı olsun ne diyelim lütfen devam et

    yanıtla

    • K.A.

      K.A.

      18 Ağustos 2015 11:16 zamanında |
      Yok Yusuf kardeşim, bırakmadım devamı geldi geliyor gelecek inşAllah. Allah senden de razı olsun..

      yanıtla

  • Salih paflakoglu

    Salih paflakoglu

    11 Eylül 2015 23:53 zamanında |
    Kenan abi, eline emeğine sağlık,herşey çok güzel muazzam bir iş çıkarmışsın Allah emeğinin karşılığını kat ve kat versin.Twitterda seni neden bulamıyorum :) bu da benim sorum...

    yanıtla

    • K.A.

      K.A.

      12 Eylül 2015 13:31 zamanında |
      Aminnn kardeşim, sağolasın güzel yorumların için. Twitterdan bana ulaşmak çok kolay, bak sağ üstte twitter iconu var, olmadı @kyabd :)

      yanıtla

  • Melih

    Melih

    03 Aralık 2015 22:12 zamanında |
    Hadi memory hackinge başlayalım !!! :p ben HAZIRIM

    yanıtla

    • K.A.

      K.A.

      04 Aralık 2015 13:31 zamanında |
      Yürü be Melih, kim tutar seni! :)

      yanıtla

  • ömer

    ömer

    17 Şubat 2016 19:26 zamanında |
    kenan abi linux yerine windows kullansak farkedermi

    yanıtla

    • K.A.

      K.A.

      25 Şubat 2016 13:16 zamanında |
      Hem de çok farkeder Ömer, bu yüzden Linux şart, hem kalbe iyi gelir, beyne iyi gelir, parmaklara iyi gelir çok faydası var yani tavsiye ederim :)

      yanıtla

  • ali haydar armağan

    ali haydar armağan

    08 Mart 2016 15:12 zamanında |
    ben assembly dili ile 2 adet 16 bitlik sayıyı toplayan program yaptım (deneme olarak) ama aa.asm diye bir dosya var fakat ben bu dosyayı nasıl çalıştırıp kullanabilirim c# dilini visualde çalıştırdığım gibi

    yanıtla

    • K.A.

      K.A.

      08 Mart 2016 20:15 zamanında |
      Ali,
      Bir sonraki yazıda derleme, bağlama ve çalıştırma ile ilgili bilgiler var. Soruyu biraz erken sormuşsun ama tahmin ediyorum ki cevabını zaten almışsındır (bir sonraki yazıyı okuduysan)

      yanıtla

  • Sarı Çizmeli Mehmet Ağa

    Sarı Çizmeli Mehmet Ağa

    30 Haziran 2016 18:59 zamanında |
    selamun aleykum
    konuya ilk başlarken zaten tırsmıştım. İlk bir kaç satırdan sonra dahada korktum ama anlatım tarzı hoşuma gitti. Anlamadığım terimleri (neredeyse tüm metni) internette araştırarak konun sonuna geldim. Yalnız konunun sonuna gelene kadar beynim aşırı işlem gören işlemci gibi ısınmaya başladı bile (cidden ısındı). Ve ben yazdıda yazılanların pek çoğunu anlamadım bile. Matematikten anlamam ona rağmen çalışıyorum, yinede kafam basmıyor.

    Şimdi sen de üstadım, ben ne yapatım? devam edeyim mi? inan çok öğrenmek istiyorum ama kafa basmıyor...

    yanıtla

    • K.A.

      K.A.

      02 Temmuz 2016 23:01 zamanında |
      Mehmet aGa,
      Bu işler hiç bir zaman kolaylaşmayacak ama sen inatla üzerine gittikçe başta zor gelenleri tekrardan görünce gülümseyeceksin, "ulan ne kasmıştık yaa" diye. Bana yıllardır olan bu, bırakmadım inatla devam ediyorum ve hala ZOR.
      Karar senin aGam..

      yanıtla

      • Sarı Çizmeli Mehmet Ağa

        Sarı Çizmeli Mehmet Ağa

        03 Temmuz 2016 09:41 zamanında |
        Tam gaz devam o zaman üstadım.. Seriyi tamamlayacağım :)

        yanıtla

  • Talha

    Talha

    29 Temmuz 2016 18:33 zamanında |
    Ellerinize, gözlerinize sağlık hocam :)

    yanıtla

    • K.A.

      K.A.

      31 Temmuz 2016 22:12 zamanında |
      Sen de sağol Talha :)

      yanıtla

  • misafir

    misafir

    04 Ağustos 2016 11:06 zamanında |
    bir kız olarak bu konulara baya merak sardım kaç günden beri böyle bir site arıyordum ellerinize sağlık hocam :)

    yanıtla

    • K.A.

      K.A.

      04 Ağustos 2016 23:08 zamanında |
      Bay/Bayan farketmez ilgi ve inat kimde varsa bilgi onda oluyor, yolun açık olsun misafir kardeş :)

      yanıtla

  • uli

    uli

    16 Ağustos 2016 15:21 zamanında |
    merhaba birkaç sorum olacaktı linux mint 32 bit 1 gb ram lı pc de çalışırmı cpusu core 2duo idi birde bu sayfada yazan terimleri rahatca öğrenebiliceğim yer varmı sayı sayma sistemlerini nerde öğrenebilirim gerçekten bilmessem sayı sayma sistemini sorun olurmu birde işletim sistemlerdeki bit farkını birazdaha açıklayıcı anlatırsanız çok mutlu olurum

    yanıtla

    • K.A.

      K.A.

      26 Ağustos 2016 21:31 zamanında |
      Bildiğim kadarıyla "google" her soruya iyi kötü cevap veriyor ?
      Ne olursa olsun "bilmezsem olur mu" diye soruyorsanız UZAK durun, sizlik bir konu değil demektir, vaktinizi daha eğlenceli şeylerde harcayın, playstation iyi bir seçenek olabilir.
      Daha açıklayıcı olmam, olamam..

      yanıtla

      • uli

        uli

        27 Ağustos 2016 07:15 zamanında |
        Peki linux sorusu ona cevap vermemişsiniz

        yanıtla

        • K.A.

          K.A.

          29 Ağustos 2016 09:01 zamanında |
          Müsade et de bizim de cevap vermediğimiz birkaç soru olsun..

          yanıtla

          • uli

            uli

            05 Eylül 2016 18:04 zamanında |
            sadece linux mint 17 veya 14 1 gb ram li pc de çalışırmı dedim neden tersliyorsun anlamıyorum

            yanıtla

Bir yorum yapın

Misafir olarak yorum yapıyorsunuz.