-
11. Data: 2011-11-03 20:13:04
Temat: Re: fajny assembler
Od: " " <f...@N...gazeta.pl>
> Fatal: 'fir.asm': Additional segments need to be defined in a .def file
>
> :(
>
wogole to nie wiem czy to blad z linkera, czy to obj z
asemblera jest nie tak jak trzeba wygenerowany :-/
te defy to chyba uzywa sie do dllek (wylacznie?) wiec to
by moze znaczylo ze to moze byc cos nie tak z tym obj z asma :(
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
12. Data: 2011-11-04 08:25:35
Temat: Re: fajny assembler
Od: " " <f...@N...gazeta.pl>
<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)
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
13. Data: 2011-11-04 16:23:30
Temat: Re: fajny assembler
Od: "Bogdan (bogdro)" <b...@p...gazeta.pl>
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
-
14. Data: 2011-11-04 16:58:46
Temat: Re: fajny assembler
Od: " " <f...@N...gazeta.pl>
Bogdan (bogdro) <b...@p...gazeta.pl> napisał(a):
> 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ć.
>
ok, dzieki za odp;
juz mi glowa trzeszczy od tego problemu bo przysiadlem przy
tym ale nic nie moge zdzialac;
wlasnie skonczylem przegladanie wszystkich opcji (bcc32) i
czesci linkera (ilink32) (te opcje linkera sa malo zrozumiale
i wygladaja na molo uzyteczne)
Udalo mi sie zmusic linker do czytania pliku def ale nie
wiem co tam wstawic, cos takiego wytworzonego napredce
LIBRARY FIR.OBJ
CODE
DATA
SEGMENTS
aaaaa CLASS 'DATA'
bbbbb CLASS 'TEXT'
EXPORTS
_asm_routine @1
jest w stanie lyknac bez raportowania bledow skladni w def,
ale linker wywala sie przy tym z komunikatem 'abnormal
termination' (na stronce embarcadero jest opis skladni tego
pliku ale nie jest tam napisane co ja mam tam wstawic)
poprobuje tego co mowisz, co do kodu asma to ostatnio zapoznalem
sie z fajnym programikiem objconv agnera foga - polecam - mozna
tym elegancko 'disaseblnac' sobie dowolnego execa albo dll
do pliku asm ito w skladniech kompatybilnych dla pieciu
assemblerow, np
objconv -fnasm myprog.exe myprog.asm
sprawdzenie typu sekcji nie rpztszlo mi do glowy - sprawdze to
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
15. Data: 2011-11-05 13:01:43
Temat: Re: fajny assembler
Od: " " <f...@N...gazeta.pl>
>
>
>
uff, chyba sie udalo (o ile nie wystapia dalsze problemy np
z importem z asma), pomogly mi dwie rzeczy
(1) disasemblujace mozliwosci objconv'a - zauwazylem ze w
disasemblerze blok text jest oznaczony jako noexecute i
listowany jako dane a nie jako kod
(choc przy linkowaniu wczesniej i tak sie dawal uruchamiac
chyba ze przoczylam jakas zmiane i wczeniej tak nie bylo,
ale chyba nie, raczej musialo i wczesniej tak byc, ale juz nie wiem do konca)
2) w necie znalazlem jak ktos uzywa zamiast "nasm -f obj prog.asm"
"nasm -f win32 prog.asm" postosowalem to i okazalo sie ze po tym sekcja
kodu jest ok - to produkuje coffa nie omfa ale objconvem moge dodac
underskory i przerobic na omfa i zlinkowalo sie ok rozniez z sekcja danych
- no to pewna ulga, troche odpoczne i zobacze czy sse zadziala
fir.asm:
;-----------------------------
global asm_routine
;-----------------------------
section .text
asm_routine:
enter 0,0
pusha
mov eax, 1111
mov ebx, 2222
mov ecx, 3333
mov edx, 4444
popa
mov eax, 7777 ; return back to C
leave
ret
;------------------------------
section .data
asm_routine_string db "asm routine string data", 0
;-----------------------------
make.bat :
rem assembly to win32 coff
nasm -o fir_coff.obj -f win32 fir.asm
rem convert win32 coff to bcc omf with underscores
objconv -fomf -nu+ fir_coff.obj fir_omf.obj
rem dissasembly for sure
objconv -fnasm fir.obj fir_obj_nasm.asm
objconv -fmasm fir.obj fir_obj_masm.asm
objconv -fgas fir.obj fir_obj_gas.asm
wynik disasemblacji w trybie nasm:
; Disassembly of file: fir.obj
; Sat Nov 05 13:37:17 2011
; Mode: 32 bits
; Syntax: YASM/NASM
; Instruction set: 80386
global asm_routine
absolut equ 00000000H ; 0
@feat.00 equ 00000001H ; 1
SECTION .text align=16 execute ; section number 1,
code
asm_routine:; Function begin
enter 0, 0 ; 0000 _ C8, 0000, 00
pushad ; 0004 _ 60
mov eax, 1111 ; 0005 _ B8, 00000457
mov ebx, 2222 ; 000A _ BB, 000008AE
mov ecx, 3333 ; 000F _ B9, 00000D05
mov edx, 4444 ; 0014 _ BA, 0000115C
popad ; 0019 _ 61
mov eax, 7777 ; 001A _ B8, 00001E61
leave ; 001F _ C9
ret ; 0020 _ C3
; asm_routine End of function
SECTION .data align=4 noexecute ; section number 2,
data
asm_routine_string: ; byte
db 61H, 73H, 6DH, 20H, 72H, 6FH, 75H, 74H ; 0000 _ asm rout
db 69H, 6EH, 65H, 20H, 73H, 74H, 72H, 69H ; 0008 _ ine stri
db 6EH, 67H, 20H, 64H, 61H, 74H, 61H, 00H ; 0010 _ ng data.
nasm wstawil jakies dwa dziwne inty, nie wiem co to jest - ale trudno
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
16. Data: 2011-11-05 16:26:20
Temat: Re: fajny assembler KoLoRoWy AsEmBLeR
Od: Kicer <...@...c>
wrote:
> czy ktos zna jakis fajny asembler, najlepiej
> prosty (bezproblemowy) i kolorowy, moglby
> miec kolorowe ide i jakas przyjazna skladnie
> samych instrukcji (zeby nie trzeba bylo np
> pisac tego chalowego 'dword ptr' i by fajnie
> sie kodowalo) - nie wiem jak wyglada swiat
> asemblera today ale chyba moze miec sie
> calkiem dobrze - poprobowalbym popisac
> troche obj-tow ktore moglbym dolinkowac
> do c (z tym ze uzywam starego borlanda 55
> i najlpeiej by mogl generowac omf-y)
>
fasm
--
Michał Walenciak
gmail.com kicer86
http://kicer.sileman.net.pl
gg: 3729519
-
17. Data: 2011-11-06 19:23:18
Temat: [OT] fajny assembler KoLoRoWy AsEmBLeR
Od: "identifikator: 20110701" <N...@g...pl>
przeglądając internet natrafiłem na tą stronkę:
http://www.phatcode.net/downloads.php?id=280
można na niej ściągnąć TASMa, czy Ktoś się
orientuje czy to jest legalne?
-
18. Data: 2011-11-06 22:21:24
Temat: Re: [OT] fajny assembler KoLoRoWy AsEmBLeR
Od: "Wiktor S." <wswiktor&poczta,fm@no.spam>
> przeglądając internet natrafiłem na tą stronkę:
> http://www.phatcode.net/downloads.php?id=280
> można na niej ściągnąć TASMa, czy Ktoś się
> orientuje czy to jest legalne?
Nie wiem, Borland kiedyś opublikował za darmo trochę swoich staroci, więc
może.
Ale na co komu TASM?
--
Azarien
-
19. Data: 2011-11-06 22:46:11
Temat: Re: [OT] fajny assembler KoLoRoWy AsEmBLeR
Od: " " <f...@g...pl>
Wiktor S. <wswiktor&poczta,fm@no.spam> napisał(a):
> > przeglądając internet natrafiłem na tą stronkę:
> > http://www.phatcode.net/downloads.php?id=280
> > można na niej ściągnąć TASMa, czy Ktoś się
> > orientuje czy to jest legalne?
>
> Nie wiem, Borland kiedyś opublikował za darmo trochę swoich staroci, więc
> może.
>
> Ale na co komu TASM?
>
dla mnie TASM bylby dobry gdyby wspieral najnowszy zestaw
instrukcji - tylko dlatego jest niedobry ze nie wspiera,
ale jest tam link do jakiegos aktualizowanego 'lazy assembler',
sciagnalem choc ja sciagam tysiace drobiazgow ktorych pozniej najczesciej
wogole nie uruchamiam :/
sam borland 5.5, jak mowie dla mnie ktory programuje w c (nie w c++),
jest *zupelnie* aktualny (nie widze w nim nic co by bylo nieaktualnego,
[poza ew tym ze nie kompiluje pod 64 bity ale ja pisze raczej pod 32 bity])
na podobnej zasadzie na jakiej aktualne jest winapi;
gcc za to podobno znacznie lepiej optymalizuje kod; sciagnalbym wspomiane
mingw (nigdy nie uzywalem), gdyby mialo jakis normalny instalator - a chyba
nie ma
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
20. Data: 2011-11-06 22:55:22
Temat: Re: [OT] fajny assembler KoLoRoWy AsEmBLeR
Od: Bronek Kozicki <b...@s...net>
Zamiast zawracac d*pe jakimiś starociami którymi mało kto się
interesuje, ściągnij sobie VirtualPC, zainstaluj pod nim jakiegoś Linuxa
i tam sobie eksperymentuj z gcc.
Możesz też sobie zainstalować Visual Express C++ , jest przyjazny
również komercyjnym zastosowaniom, przynajmniej będziesz miał porównanie.
B.