C#nedir?com
 
YAZAR HAKKINDA
Mustafa Arkan
Mustafa Arkan
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
4 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: arasinda assembly blogun bloklari builder degeri dilleri farkli kodlar kodlari kodlarimizi kodlarinin pascal programlama programlar X86 Assembly Mustafa Arkan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : X86 Assembly
Yayınlanma Tarihi : 23.9.2006
Okunma Sayısı : 44359
Yorum Sayısı : 5     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 22.10.2017
Turhal Temizer 'in Blogu
C# – IRR Function 22.10.2017
Burak Selim Şenyurt
Asp.Net Core'da Bir WebSocket Macerası 22.10.2017
Burak Selim Şenyurt
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 22.10.2017
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
C ve Pascal Altinda Assembly
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon


    Assembly kodlarımızı farklı programlama dilleri içerisinde de kullanabiliriz. Daha önce anlatılan makalelerde DOS’ta DEBUG ve TASM’ı kullandık. Bu bölümde ise, anlatacağımız kodları pascal  ve c++ builder içerisinde kullanacağız.
   
    Sadece assembly komutlarını kullanarak programlar geliştirmek kodlar için kullanılan satır sayısı arttıktan sonra zor olmaya başladığından farklı programlama dilleri içerisinde assembly kodlarını alt programlar olarak yazmak daha avantajlı bir yol olur. Bu sayede temelden bize ait olan çalışma mantığını bildiğimiz istediğimiz özelliklere sahip fonksiyonlar geliştirme fırsatımız oluruz.

   
    Şekil 1’de
 Turbo Pascal içerisindeki ASM....END; blokları arasında, Şekil 2’de  C++ Builder 6.0 içerisindeki asm{...} blokları arasında tasm’da olduğu şekliyle kodlarımızı yerleştirebiliyoruz.


Turbo Pascal 7.0
içerisinde assembly kodlarının yerleştirildiği bloğun yapısı;
____________________________________________________________________________________________________________


şekil 1: Pascal içerisindeki assembly bölümü
____________________________________________________________________________________________________________




C++ Builder 6.0 içerisinde assembly kodlarının yerleştirildiği bloğun yapısı;
____________________________________________________________________________________________________________


şekil 2: C ++ Builder içersindeki assembly bölümü
____________________________________________________________________________________________________________


      
    Şekil 1 ve 2’deki
  assembly blokları içerisinde, iki sayının toplanması işleminin nasıl gerçekleştiğine bakalım:
 
    Turbo Pascal 7.0’da ASM...END;
ve C++ Builder 6.0’da ASM{...} blokları arasında, komut satırından girilen değerler MOV komutu ile AL registerine aktarıldıktan sonra ADD komutuyla toplama  işlemini gerçekleştirip TOPLAM değişkenine AL registerinin son değeri olarak aktarıyoruz, assembly bloğu dışında programlama dilinin fonksiyonları ile sonucu görüntülüyoruz.



şekil 3: Turbo Pascal 7.0 ile assembly kod örneği


şekil 4: Turbo Pascal 7.0 Ekran Görüntüsü


   
C++ Builder içerisinde kullanacağımız assembly bloğu dışındaki component ve fonksiyonları inceleyelim.  

C ++ Builder Componentleri :

Etiket (TLABEL): Form içerisinde bulunan Metin Kutusu’na ne tür değer girileceğini belirtmek için kullanılmaktadır. 

Metin Kutusu (TEdit): Kullanıcının bilgi girişi yapması ya da elde edilen sonucun görüntülenmesi için kullanılır.

Komut Düğmesi (TButton): Kullanıcın programda, gerçekleştireceği uygulamayı başlatan yada bitiren kontroldür.

Assembly Bloğu dışında kullandığımız C ++ Builder Fonksiyonları:

Fonksiyon Anlamı Kullanım Şekli
StrToInt Metin olarak girilen değeri sayıya dönüştürür. StrToInt(Edit1->Text);
IntToStr Sayı olarak girilmiş değeri metine dönüştürür. IntToStr(Edit1->Text);



şekil 5: C ++ Builder ile assembly kod örneği


şekil 6: C ++ Builder 6.0 Ekran Görüntüsü
   
   
C++ Builder 6.0 ile gerçekleştirdiğimiz örnek kodu buradan , Turbo Pascal 7.0 ile gerçekleştirdiğimiz örnek kodu buradan indirebilirsiniz.
   
    Makalemizde , assembly’nin diğer diller içerisinde nasıl kullanılacağını en basit haliyle anlatabilmek için kısa kodlar kullandım, daha gelişmiş kodları gerçekleştirebilmeniz için sizlere başlangıç olması açısından önemli. Uzak mesafeler katedebilmek için küçük adımlar atmak gerekiyor. Adımlar küçük yol uzun, önemli olan hedefe ulaşmayı istemek.Herkese iyi çalışmalar... 

Makale:
C ve Pascal Altinda Assembly Assembly ve X86 Programlama Mustafa Arkan
  • Yazılan Yorumlar
  • Yorum Yaz
MAR
5
2010
C# dilinde assembly komutlarını nasıl kullanabiliriz?
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor