Linux Makina Dili NASIL

Yazan: Konstantin Boldyshev

Linux Assembly

Yazan: Francois-Rene Rideau

Tunes project

Çeviren: Oğuz Yarımtepe

Yasal Açıklamalar

Bu belgenin çevirisinin, Linux Sembolik Makina Dili Nasıl 1.1 sürümünün telif hakkı © 2005 Oğuz Yarımtepe'ye aittir. Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Özgür Belgeleme Lisansının 1.1 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Bu Lisansın bir kopyasını http://www.gnu.org/copyleft/fdl.html adresinde bulabilirsiniz.

BU BELGE "ÜCRETSiZ" OLARAK RUHSATLANDIĞI İÇİN, İÇERDİĞİ BİLGİLER İÇİN İLGİLİ KANUNLARİN İZİN VERDİĞİ ÖLÇÜDE HERHANGİ BİR GARANTİ VERİLMEMEKTEDİR. AKSİ YAZİLİ OLARAK BELİRTİLMEDİĞİ MÜDDETÇE TELİF HAKKİ SAHİPLERİ VE/VEYA BAŞKA ŞAHİSLAR BELGEYİ "OLDUĞU GİBİ", AŞİKAR VEYA ZİMNEN, SATİLABİLİRLİĞİ VEYA HERHANGİ BİR AMACA UYGUNLUĞU DA DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEKSİZİN DAĞİTMAKTADİRLAR. BİLGİNİN KALİTESİ İLE İLGİLİ TÜM SORUNLAR SİZE AİTTİR. HERHANGİ BİR HATALİ BİLGİDEN DOLAYİ DOĞABİLECEK OLAN BÜTÜN SERVİS, TAMİR VEYA DÜZELTME MASRAFLARİ SİZE AİTTİR.

İLGİLİ KANUNUN İCBAR ETTİĞİ DURUMLAR VEYA YAZILI ANLAŞMA HARİCİNDE HERHANGİ BİR ŞEKİLDE TELİF HAKKİ SAHİBİ VEYA YUKARIDA İZİN VERİLDİĞİ ŞEKİLDE BELGEYİ DEĞİŞTİREN VEYA YENİDEN DAĞITAN HERHANGİ BİR KİŞİ, BİLGİNİN KULLANIMI VEYA KULLANILAMAMASI (VEYA VERİ KAYBI OLUŞMASI, VERİNİN YANLIŞ HALE GELMESİ, SİZİN VEYA ÜÇÜNCÜ ŞAHISLARIN ZARARA UĞRAMASI VEYA BİLGİLERİN BAŞKA BİLGİLERLE UYUMSUZ OLMASI) YÜZÜNDEN OLUŞAN GENEL, ÖZEL, DOĞRUDAN YA DA DOLAYLI HERHANGİ BİR ZARARDAN, BÖYLE BİR TAZMİNAT TALEBİ TELİF HAKKİ SAHİBİ VEYA İLGİLİ KİŞİYE BİLDİRİLMİŞ OLSA DAHİ, SORUMLU DEĞİLDİR.

Tüm telif haklari aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmıŞ olması ona onay verildiği anlamında görülmemelidir.

Mart 2006

Özet

Bu, Linux Sembolik Makina Dili NASIL, sürüm 0.6g belgesidir. Bu belge özgür programlama araçları kullanarak, genelde IA-32 (i386) platformunda, Linux işletim sistemi için veya Linux işletim sistemi kaynaklı, sembolik makina dilinde nasil programlama yapılacağını anlatmaktadır. İçerik diğer yazılım veya donanıma uygulanamayabilir.


İçindekiler

3.1. Giriş
3.1.1. Belgenin son sürümü
3.1.2. Önsöz
3.1.3. Katkıda Bulunanlar
3.1.4. Tercümeler

3.2. Sembolik makina diline ihtiyacınız var mı?
3.2.1. Artılar ve Eksiler
3.2.1.1. Sembolik makina dilinin (Assembly) avantajları
3.2.1.2. Sembolik makina dilinin (Assembly) dezavantajları
3.2.1.3. Değerlendirme

3.2.2. Sembolik makina dili nasıl kullanılmaz
3.2.2.1. Başarılı kodu gerçeklemek için adımlar
3.2.2.2. Eniyileme yapan derleyiciler ile dilleri
3.2.2.3. Kodunuzu hızlandıracak için genel adımlar
3.2.2.4. Derleyicinin ürettiği kodu incelemek

3.2.3. Linux ve Assembly

3.3. Çeviriciler (Assemblers)
3.3.1. GCC Satıriçi Sembolik Makina Dili
3.3.1.1. GCC'yi nereden bulabiliriz
3.3.1.2. GCC satır içi sembolik makina dili için belgeler nerede
3.3.1.3. GCC'yi uygun satıriçi sembolik makina kodu üretmesi için çağırmak
3.3.1.4. Makro desteği

3.3.2. GAS
3.3.2.1. Nereden Bulurum
3.3.2.2. Şu AT&T sözdizimi de ne ola ki
3.3.2.3. Intel sözdizimi
3.3.2.4. 16 bitlik kip
3.3.2.5. Makro desteği

3.3.3. NASM
3.3.3.1. NASM'ı nereden bulurum
3.3.3.2. Ne yapar

3.3.4. Diğer Sembolik Makina Çeviricileri
3.3.4.1. AS86
3.3.4.2. YASM
3.3.4.3. FASM
3.3.4.4. OSIMPA (SHASM)
3.3.4.5. AASM
3.3.4.6. TDASM
3.3.4.7. HLA
3.3.4.8. TALC
3.3.4.9. Özgür Pascal (Free Pascal)
3.3.4.10. Win32Forth derleyicisi
3.3.4.11. Terse
3.3.4.12. Özgür olmayan ve/veya 32-bit olmayan x86 çeviricileri

3.4. Düşük seviye programlama
3.4.1. Harici Filtreler
3.4.1.1. CPP
3.4.1.2. M4
3.4.1.3. Kendi filtreleriniz ile makroprogramlama

3.4.2. Metaprogramlama
3.4.2.1. Derleyicilerdeki arka uçlar
3.4.2.2. New-Jersey makina kodu araç seti
3.4.2.3. TUNES

3.5. Çağrı Uzlaşımları
3.5.1. Linux
3.5.1.1. GCC'ye ilintileme
3.5.1.2. ELF ve a.out arasındaki sorunlar
3.5.1.3. Doğrudan Linux sistem çağrıları (syscalls)
3.5.1.4. Linux altında donanımsal G/Ç
3.5.1.5. Linux/i386'daki 16 bitlik sürücülere erişim

3.5.2. DOS ve Windows
3.5.3. Kendi işletim sisteminiz

3.6. Hızlı başlangıç
3.6.1. Giriş
3.6.1.1. İhtiyacınız olan araçlar

3.6.2. Merhaba Dünyalı :-)
3.6.2.1. Yerleşim
3.6.2.2. NASM (hello.asm)
3.6.2.3. GAS (hello.S)

3.6.3. Çaliştırılabilir bir kod üretmek
3.6.3.1. Nesne kodu üretimi
3.6.3.2. Çalıştırılabilir üretmek

3.6.4. MIPS Örneği

3.7. Özkaynaklar
3.7.1. Siteler
3.7.2. Haber grupları
3.7.3. Listeler

3.8. Sıkça Sorulan Sorular
3.9. Ekler
3.9.1. Tarihçe
3.9.2. Teşekkür