Etiket Arşivi: ‘Assembly’

Win32 Assembly ile Kaçış Karakterini Kullanmak

Esen;
Kaçış karakterleri, programcılıktan da önce donanım üzerinde kullanılan fiziksel yazım hareketlerinin daha sonra yazılım ortamına uyarlanmış durumlarıdır. Boşluk bırakma, sekme yapma, alt satıra geçme gibi yazıcı ya da daktilo gibi donanımlarda ilk olarak kullanılan bu hareketler programcılıkta bazı karakterler ile simgelenmiştir:

Kaçış Karakteri Onaltılık Değer Açıklaması
\a 07 Alert – Alarm, ikaz, bip sesi çıkartır.
\b 08 Backspace – İmleci olduğu yerden bir geriye getirir ve oradaki karakteri silmez*.
\e 1B ESC- Escape –
\f 0C Formfeed – Yazıcıya yazdığı kağıtla işinin bittiğini yazmak istediği şeyi yeni bir kağıdın en başından yazması gerektiğini anlatan kaçış karakteridir.
\n 0A Newline (Line Feed) – İmleci bir alt satıra taşır.
\r 0D Carriage Return –
\t 09 Horizontal Tab – Yatay Sekme
\v 0B Vertical Tab – Dikey Sekme; bu da yazıcıları ilgilendiren bir kaçık karakteri
\\ 5C Backslash – Ters Slaş
` 60 Backquote
\' 27 Single quotation mark – Kesme İmi
\" 22 Double quotation mark – Tırnak İmi, bunu \q ile yapıyoruz
\? 3F Question mark – Soru İmi
\nnn Ters slaştan sonra 3 haneli bir rakan yazarak 8lik tabanda girdi yapabiliriz
\xhh… Ters slaş ve x karakterinden sonra onaltılık bir değer girebiliriz

Arkadaşlar kaçış karakterleri bu kadar değil /0 yaparak NULL değerini /20h ile boşluk döndürebiliriz. Bunun için ASCII tablosunu inceleyelim: devamını okuyun »

Kategori Assembly, Belgeler, Genel
25.06.2016
4929 Okunma

RtlZeroMemory ve RtlFillMemory kullanarak belleği, değişkenleri temizlemek

Esen,
Assembly kodlarlen(Hatta C/C++ kodlarken de) gerek duyacağınız iki API’den bahsetmek istiyorum: RtlZeroMemory ve RtlFillMemory. Bu ikisi sayesinde bellek alanını boşaltabilir ya da istediğimiz veriyle doldurabiliriz.

RtlZeroMemory

Sürekli veri alan ve bunu kullanan bir değişkenimiz olduğunu düşünelim. Assembly yazarken bir yazmaca bir değişken atatığınızda mesela: devamını okuyun »

Kategori Assembly, Belgeler
24.06.2016
2510 Okunma

Visual Studio 2015 ile Win64 Assembly Programlama


Esen!
Arkadaşlar, RadASM ile x86 Assembly için SCTZine Assembly sayfamızı ziyaret edebilirsiniz.
Bugün ise ilk defa 64 bitlik assembly programlama yapacağız. 64 bit programlama için birkaç değişik yaklaşım var. Bu yazıda C++ ile beraber assembly nasıl kodlanır ona bakacağız. Saf x64 Assembly derslerim de olacak. Hepsi zamanla.

Çalışma Ortamı (Gereksinimler):
Microsoft Windows 10
Microsoft Visual Studio 2015
Microsoft SDK
Not: Bunlar “minimum” gereksinimler değil. Windows 8.1 ve Visual Studio 10 ile de bu çalışmayı yapabilirsiniz.
devamını okuyun »

Kategori Assembly
16.06.2016
3370 Okunma

RadASM 2.2.2.1 Türkçe

radasm-belgiEsen!
RadASM’nin yazarı Ketil Olsen aslında RadASM v3’ü duyurmuştu. Ancak hemen sonra RadASM’yi geliştirmeyi durdurdu. RadASM açık kaynak kodlu bir assembly geliştirme ortamı ve kaynak kodlarını Sourceforge‘de bulabileceğiniz gibi MASM32 forumlarında da küçük bir topluluk RadASM üzerinde çalışmaya devam ediyor.

Ben halen v2 sürümünü kullanıyorum çünkü bu sürümü Türkçeleştirdim ve v3 sürümünün dil desteği yok. Ayrıca v3 sürümü çok fazla bir yenilik getirmediği gibi v2 sürümünün proje dosyaları olan .rap uzantılı dosyaları da tanımıyor.

Aşağıda bağlantısını verdiğim paketi devamını okuyun »

Kategori Araçlar, Assembly
17.05.2016
3605 Okunma

MASM v11

MASM32 Yazılım Geşitirme Ortamı 32bit Microsoft assembly geliştirmek isteyenler için hazırlanmış bir pakettir. Kurulum seçtiğiniz sürücüye otomatik olarak yapılır ve dizin düzenlemesiyle uğraşmazsınız. Eğer hala Visual Studio kullanmayanlardansanız MASM32 yaygınlığıyla en çok seçilen assembly geliştirme ortamıdır.

Not: Merak etmeyin ilerleyen zamanlarda Visual Studio ile de hem 32 bit hem de 64 bit assembly geliştirme dersleri yayınlayacağım!

[dm]128[/dm]

Kategori Araçlar
17.05.2016
2888 Okunma

Pencere Animasyonları – AnimateWindow fonksiyonu ve RadioButton Kullanımı

Merhabalar; AnimateWindow fonksiyonu; pencerenizi açarken ya da kapatırken bazı görsel efektler sunmanıza yarar. Bunlar dönme, kayma, çökme/açılma ve yavaşça görünür olma şeklindedir. Bunların bazılarını birleştirebilirsiniz de aynı zamanda.

Yazım Şekli:
AnimateWindow,hWnd,dwTime,dwFlags
Örnek olarak:
invoke AnimateWindow,hWin,600,AW_HIDE or AW_SLIDE or AW_HOR_POSITIVE

Parametreler:
hWnd(dword): Oynatacağımız pencerenin handle değeri burada oluyor
dwTime(dword): Milisaniye olarak animasyonun oynayacağı süreyi belirtir.
dwFlags(dword):Animasyonun çeşidi. Bir seferde birden fazla çeşit kullanabilirsiniz. Bunu yapmak için bayrakların arasına “OR” mantıksal operatörünü koymanız yeterli. Pencere açılırken “AW_ACTIVATE” eğer kapanacaksa “AW_HIDE” kullanılır.

For English users please visit: MASM32 Forum Related Topic devamını okuyun »

Kategori Assembly, Belgeler
05.11.2012
3579 Okunma

1000000 Digit Pi Number Generator

Selamlar;

Pi sayısını hepimiz biliriz: 3,14 .Bir dairenin çevresinin çapına oranıdır. Ama bu sayı bu kadar değil. Bazıinsanlar Pi sayısının sonsuza kadar uzadığını söylüyorlar. Bazı matematikçiler de daha sonsuza kadar ulaşamadıklarını bu yüzden bu sayının bu kadar uzadığını ya da bir örüntü(düzen) içinde kendisini tekrar edip etmediğini bilemeyeceklerini söylüyor.

Pi sayısının 65 hanesi:
3,1415926535897932384626433832795
028841971693993751058209749445923

Bugün dünyada 10 trilyon basamağa kadar ulaşılmış pi sayısında. Bu rakama ulaşabilmek için sadece yazılım/algoritma değil aynı zamanda donanımda gerekir. Benim aşağıda verdiğim kodları 1000000 hane için derleyin, göreceksiniz ki bazılarınızın bilgisayarında çalışmayacak. Benim makinemde 267 saniyede 1milyon haneye ulaştım. Sizde deneyin.

Ayrıca NumberWorld isminde bir site var burada 10trilyon haneye ulaşabilirsiniz. bazı insanlar bu tarz konuları yarış haline getirmişler, laboratuvar kurmuşlar. Bağlantıdaki resimleri inceleyin adam nasıl makinede çalışıyor!

Ekteki dosya Gauss–Legendre algorithm ve GMP (gmp-dynamic-vc-4.1.2 library) kütüphanelerinin birleşiminden oluşturulmuş. Dosyayı derleyebilmek için MASM11 ‘in kurulu olması ve GMP.DLL ‘nin dosya ile aynı klasörde olması gerekmektedir.

[dm]123[/dm]

Kategori Assembly, Belgeler
09.09.2012
4916 Okunma

Rastgele Ondalıklı Sayı Üreteci

Merhabalar, önceki bir yazımda sizlerle rastgele tamsayı üreten bir araç hazırlayıp kaynak kodlarıyla eklemiştim. BURADAN inceleyebilirsiniz. 2 gün önce MASM Forumlarında rastgele reel sayı üretmek ile ilgili bir konu açılmıştı. Bende bizde de böyle bir örnek olması için kendim bir rastgele ondalıklı sayı üreteci hazırladım. Ayrıca oradaki kaynak kodları da RadASM projesine çevirip düzenledim. (Daha sonra ekleyeceğim)

Rastgele Ondalıklı Sayı Üreteci(Random Real Number Generator) mükemmel bir üreteç değil ama size bir fikir verecek. Ben fonksiyonumda basitçe önce bir rastgele tamsayı ürettim. Sonra ise bu sayıyı pi sayısıyla işlemlere soktum. İsterseniz e sabitinide kullanabilirsiniz ya da kendi sabitinizi kendiniz oluşturabilirsiniz.

Dediğim gibi temel  mantığı anladıktan sonra gerisi sizin hayal gücünüze kalmış. Assembly dilinde ondalıklı sayılar ile çalışacaksanız FPU komutlarını bilmeniz gerekiyor. Buradan ilgili Ağ Sayfasına gidiniz.

Kaynak kodlar aşağıda, devamını okuyun »

05.08.2012
5040 Okunma

RadASM Icon Pack for v2.0 and v3.0

Uzun bir süre önce MASM forumlarında cntrump nickli kullanıcı RadASM v3.0 için ikon paketi çıkartmıştı. Yalnız eski MASM forumunda bulunan bu dosyalar yeni MASM forumlarında yok. Ayrıca o ikonları ben v2.0 için de düzenledim buradan hem RadASM 3.0 için hemde RadASM v2.0 için ikon paketini indirebilirsiniz.

English: Long time ago cntrump had released icons and png sources for RadASM 3 on the old MASM forums. I have edited them for RadASM 2. You can both download icons&pngs here. Regards.

[dm]109[/dm]

[dm]110[/dm]

Kategori Assembly, Belgeler
29.07.2012
4411 Okunma

Mors Kodu Çevirici

Merhabalar, zamanında CYDONiA tarafından yazılan küçük bir text2morscode programı vardı.  Zugo bu assembly kodunu biraz daha geliştirp bir de ses eklemiş. Gerçek bir Mors Kodu Çevirici olmuş. Kendisinden rica ettim sağ olsun siteye koymam izin verdi. Dosya kaynak kodlarıyla beraber aşağıdadır.

[dm]104[/dm]

Kategori Assembly
08.05.2012
5001 Okunma