[Pardus-kullanicilari] Assembly

cem sonmez cemosonmez at gmail.com
8 Oca 2007 Pzt 18:28:04 EET


Aslına bakarsanız yazmıs oldugum kodda hicbir hata yok sadece bence durum
nasm'dan kaynaklanıyor.
TASM'da bu kod sorunsuz calısıyor ama nasm da sanırım baazı degisiklikler
yapmak gerek.Hata siz de isterseniz bu ufak koda bir goz atın

        .MODEL SMALL
        .STACK 32
        .DATA
SAY1    DB      25
SAY2    DB      45
TOPLAM  DB      ?

        .CODE
ANA     PROC FAR
        MOV AX, at DATA
        MOV DS,AX

        MOV AL,SAY1
        ADD AL,SAY2
        MOV TOPLAM,AL

    CALL KYAZ

        MOV AH,4CH
        INT 21H

ANA     ENDP

KYAZ    PROC NEAR

        MOV AH,02H
        MOV DL,TOPLAM
        INT 21H

    RET

KYAZ    ENDP


        END ANA

Tasm'da sorunsuz.Bu arada kodda degisiklik yapmadan nasm'a uyarlamanın bir
yolunu bilen de yardımcı olursa sevinirim
Ä°yi aksamlar...

2007/1/8, F.Aydýn DÜNDAR <aydin_dundar at yahoo.com>:
>
> Cem Bey sizin de listeden görmüş olduğunuz
> gibi, yazmış  olduğunuz kodda hatalar
> var.
>
> asci.o nesnesi elbette ki görünmeyecektir.
>
> Komut olmuş ama kod olmamış :)
>
> --- cem sonmez <cemosonmez at gmail.com> wrote:
>
> > Tamam nasm komutu simdi oldu cıktısı :
> >
> > root at figen Desktop # nasm -f elf -l asci.lst
> > asci.asm
> > asci.asm:1: error: attempt to define a local label
> > before any non-local
> > labels
> > asci.asm:1: error: parser: instruction expected
> > asci.asm:2: error: attempt to define a local label
> > before any non-local
> > labels
> > asci.asm:2: error: parser: instruction expected
> > asci.asm:3: error: attempt to define a local label
> > before any non-local
> > labels
> > asci.asm:7: error: parser: instruction expected
> > asci.asm:20: error: symbol `ANA' redefined
> > asci.asm:20: error: parser: instruction expected
> > asci.asm:21: error: parser: instruction expected
> > asci.asm:26: error: symbol `KYAZ' redefined
> > asci.asm:26: error: parser: instruction expected
> > asci.asm:27: error: parser: instruction expected
> >
> > ama ls -l komutu ile baktıgımda asci.o nesnesi
> > olusmamıs gorunuyor...
> >
> > 06.01.2007 tarihinde Ömer F. USTA
> > <omerusta at gmail.com> yazmış:
> > >
> > > nasm komutu sonrasında aynı dizinde girdi olarak
> > verdiginiz dosyanın
> > > benzer isminde fakat
> > > .o şeklindeki object code'u oluşması gerek ls -l
> > komutu ile bakarsanız
> > > ve orada o dosyayı
> > > görmezseniz 2. komut olan ve bağlamayı yapan gcc
> > komutune geçmeniz birşey
> > > ifade
> > > etmez çünkü gcc'ye biz bu oluşacak obje yi
> > veriyoruz ama nasm sizin
> > > örnekte oluşturmadığı için
> > > gcc böyle bir dosya yok diyordur.
> > >
> > > nasm komutunu verdiginiz dizindeki asci.asm
> > dosyasının olduguna ve bu
> > > dosyaya nasm komutunu
> > > verdiginiz kullanıcı ile erişebildiginize emin
> > olun . kısaca ls -l
> > > çıktısını buraya yazarsanız daha rahat
> > > yardımcı olabilirim.
> > >
> > > On 1/6/07, cem sonmez <cemosonmez at gmail.com>
> > wrote:
> > > > Ömer bey ,
> > > > Gercekten yardımlarınız icin cok tesekkur ederim
> > en azından kafamda
> > > > birseyler daha cok yerine oturmaya basladı.
> > > > "nasm -f elf -l asci.lst  asci.asm" komutunu
> > biraz once calıstırmısken
> > > simdi
> > > > ise soyle birsey cıktı :
> > > >
> > > > <<nasm: fatal: unable to open input file
> > `asci.asm'>>(Bu arada nasm
> > > zaten
> > > > sistemde kurulu durumda)
> > > >
> > > > Biraz once o islem yapıldıktan sonra ise "gcc
> > asci.o -o ilk_program"
> > > > komutunu da yazdıgım zaman " asci.o" nesnesinin
> > olusmadıgını soyluyor.
> > > >
> > > > Kusura bakmayın bu konuda hicbir bilgim yok onun
> > icin herseyi sormak
> > > > durumundayım.Umarım beni cekmek icin sabrınız
> > vardır.
> > > > Tekrar tesekkurler...
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > 06.01.2007 tarihinde Ömer F. USTA
> > <omerusta at gmail.com> yazmış:
> > > > > 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
> > > > > >
> >
> === message truncated ===>
> _______________________________________________
> > 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/
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> _______________________________________________
> 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/
>
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: http://liste.uludag.org.tr/pardus-kullanicilari/attachments/20070108/4612474f/attachment.htm 


Pardus-kullanicilari mesaj listesiyle ilgili daha fazla bilgi