[Pardus-kullanicilari] Assembly
Ömer F. USTA
omerusta at gmail.com
6 Oca 2007 Cmt 02:16:15 EET
gcc ile assembly kodu hiç derlemedim ama genel yapısı şu şekilde
gcc kendisine dosya olarak yollanılan kaynak kodun dosya uzantısına göre
uygun derleyiciye paslar ve o şekilde derletir. yani bir c kodunuz varda
abc.c bir c++ kodunuz varsa abc.cpp şeklinde isim verirsiniz dosyanıza
(keza assembly için sanırım .asm olması gerek )
sonrasında gcc -Wall denenecek_dosya.asm -o cikti_dosyasi
komutu ile dosyayi derlersiniz. Derleme sonrasında olusacak
calisabilir ikili dosya cikti_dosyasi ismini
alacaktir. -Wall secenegi Warning all manasina gelmektedir derleme
sirasinda olusabilecek hataları
ve kodda duzeltmenizi dusundugu yerleri size ayrıntıları ile verecektir.
[ Az önce Çağlar beyin verdiği bağlantıyı inceledim. Gcc burda derleme
değil linkleme yapıyor sanırım
o zaman burdaki örneğimiz birazcık değişecek. Sisteminizde nasm isimli
assembler yüklü olması gerekiyor.
(sanırım sudo pisi it nasm kuracaktır ).
Sonrasında hello.asm isminde kaydettiğinizi düşündüğüm assembly
kodunuzu şu şekilde derleyip
nesne kodu(object code) oluşturuyoruz.
nasm -f elf -l hello.lst hello.asm
bu işlem sonrasında aynı dizinde hello.o isminde derlenmiş ama
sistemde çalışır duruma gelmek için
bağlanmamış nesnemiz oluşmuş olacak. ( buradaki -f sanırım oluşacak
nesnenin türünü belirtiyor ki
linuxta 2 tür çalıştırılabilir sistem olduğunu hatırlıyorum biri antik
unix sistemlerinden a.out veya modern
elf ( Executable and Linkable Format ) )
şimdi gcc hello.o -o ilk_program
komutu ile bu nesnemizi linkliyoruz ( en azından ben öyle anladım.
Hatalı olabilirim )
şu anda ilk_program isminde çalıştırılabilir dosyanız hazır.
./ilk_program (nokta ve slash'ı unutmayın ) komutu ile programımızı
çalıştırabilirsiniz.
Umarım yardımcı olabilmişimdir.
On 1/6/07, cem sonmez <cemosonmez at gmail.com> wrote:
> Caglar bey ;
> gcc -o asci asci.o yazinca
>
> gcc: asci.o: No such file or directory
> gcc: no input files
>
> seklinde bir yazi cıkıyor, sebebi ne olabilir acaba..
>
>
> 2007/1/6, S.Çağlar Onur <caglar at pardus.org.tr>:
> >
> > 06 Oca 2007 Cts 01:04 tarihinde, cem sonmez şunları yazmıştı:
> > > GOndermis oldugunuz sunumda nasıl derlenip calıstırabilcegi
> > > yazmıyor...Sadece nasıl yazılacagı var...
> >
> > http://www.csee.umbc.edu/help/nasm/hello.asm
> > --
> > S.Çağlar Onur <caglar at pardus.org.tr>
> > http://cekirdek.pardus.org.tr/~caglar/
> >
> > Linux is like living in a teepee. No Windows, no Gates and an Apache in
> house!
> >
> >
> > _______________________________________________
> > Pardus-kullanicilari mailing list
> > Pardus-kullanicilari at uludag.org.tr
> >
> http://liste.uludag.org.tr/mailman/listinfo/pardus-kullanicilari
> > Arama: http://liste.uludag.org.tr/arama/
> >
> >
> >
> >
>
>
> _______________________________________________
> Pardus-kullanicilari mailing list
> Pardus-kullanicilari at uludag.org.tr
> http://liste.uludag.org.tr/mailman/listinfo/pardus-kullanicilari
> Arama: http://liste.uludag.org.tr/arama/
>
>
>
--
Ömer Fadıl USTA
http://www.bilisimlab.com/
Pardus-kullanicilari mesaj listesiyle ilgili
daha fazla bilgi