eGospodarka.pl
eGospodarka.pl poleca

  • Data: 2011-11-04 16:23:30
    Temat: Re: fajny assembler
    Od: "Bogdan (bogdro)" <b...@p...gazeta.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 04.11.2011 09:25, f...@N...gazeta.pl pisze:
    > <f...@N...gazeta.pl> napisał(a):
    >
    >>
    >>> Fatal: 'fir.asm': Additional segments need to be defined in a .def file
    >>> :(
    >>
    > cholerstwo.. chyba zaczynam troche rozumiec o co chodzi, ale
    > nie za bardzo - PE i exe w ramie maja wydzielone sekcje (nie
    > jestem pewien czy w jezyku linkera to samo nie nazywa wlasnie
    > 'segment'),, oddzielnie linkowane moduly ((slowa modul uzywa
    > linker do oznaczenia mw tego samego co ja czyli pliku .obj ))
    > oddzielnie linkowane moduly mozna chyba z tego co rozumiem
    > zlinkowac tak zeby sekcje data z main_in_c.obj i data z
    > asm_routine.obj znalazly sie albo w oddzielnych segmentach
    > (i wtedy nalezy podac linkerowi ew dodatkowe informacje w pliku
    > DEF) albo ew w tym samym segmencie (ew tez moze nalezy coś
    > podac w pliku .DEF), z sekcjami .text nie ma jakos problemu....
    > przygnebia mnie ten problem bo jak tego nie rozwiaze to
    > mi sie nie uda podlaczac te procedury w nasmie - a pouczylbym
    > sie asma (na inny kompilator nie mam checi sie obecnie
    > przesiadac bo to zbyt duza rewolucja w borlandzie czuje sie
    > wygodnie jak w fotelu - jesli mowa o krzeslach)

    Tak to właśnie jest, jeśli dobrze pamiętam - jeśli definiujesz własne
    segmenty, to trzeba je dodać do pliku *.def, który był tworzony przez
    kompilator do większości programów (choć do programów w asemblerze,
    bez innych języków, to raczej nie było potrzebne). Ale to było dawno,
    więc mogę się mylić.
    Z .text nie ma takiego problemu, bo sekcja .text jest tylko jedna i
    widocznie nazywa się tak samo lub linker automatycznie ją widzi.
    Myślałem, że Borland nazwie/stworzy sekcję danych tak, że nazwanie
    naszej ".data" sprawi, że będzie działać. Ale skoro nie działa, to
    zrób tak: napisz w C program/plik z jakimikolwiek danymi, wygeneruj
    kompilatorem C pliki asemblerowe (opcja bodajże -s lub -S), zobacz,
    jak w nich nazywa się segment danych i nazwij tak samo ten w pliku z
    kodem asm. Potem skompiluj plik asm i spróbuj ponownie linkować.
    Ja dalej nie podziała, możesz spróbować poszukać w sieci porad
    dotyczących tego błędu (ewentualnie dodając asembler do kryteriów
    wyszukiwania). Ewentualnie wystaw gdzieś w sieci plik asemblerowy
    wygenerowany przez kompilator i podaj adres, to będzie się można
    przyjrzeć.

    --
    Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
    Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
    Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
    www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: