Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




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ı : 56550
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Ş
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 18.4.2024
Turhal Temizer
Mac OS/X Removing CUDA 18.4.2024
Burak Selim Şenyurt
Kurumsal Yazılımcının Oyun Geliştirme ile İmtihanı 18.4.2024
Burak Selim Şenyurt
Matematik ve Oyun Programlama - Missile Command - Final 18.4.2024
  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