 |
Coders' city Nasza pasja to programowanie!
|
| Zobacz poprzedni temat :: Zobacz następny temat |
| Autor |
Wiadomość |
StealthK
Dołączył: 14 Cze 2006 Posty: 1
|
Wysłany: Sro Lut 03, 2010 6:33 am Temat postu: |
|
|
| Kamzor napisał: | | izaw napisał: | | Nieporozumienie. |
g++ można przełączyć by zamiast skompilowanego kodu otrzymać przetłumaczony na tego assemblera. Ale który TO w końcu jest? |
:)
Chyba rozumiem Twoje pytanie. Translacja kodu, od C do maszynowego wygląda następująco:
Pliki *.c i *.h są łączone przez preprocesor. (aby pokazać efekt wywołaj kompilator z opcją -E (wielką literą - jest istotne dla kompilatora)). Wynik: na standardowe wyjście (monitor) dostaniesz plik, chyba że użyjesz opcji -o <nazwa_pliku> i zapiszesz plik z rozszerzeniem *.i.
Plik z rozszerzeniem *.i są kompilowane przez kompilator C do kodu asemblerowego (opcja GCC to -S). Dostaniesz pliki z rozszerzeniem *.S.
Pliki z rozszerzeniem *.i są asemblowane do pliku *.o (opcja gcc to -c ) Otrzymasz pliki z rozszerzeniem *.o
Pliki z rozszerzeniem *.o mogą być kompilowane z plikami *.a (biblioteki), do kodu wynikowego (maszynowego).
Dokładne informacje znajdziesz tutaj: http://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/Overall-Options.html#Overall-Options.
Myślę, że wystarczająco szczegółowo napisałem. :)[/url] |
|
| Powrót do góry |
|
 |
|
|
mikmas

Dołączył: 26 Maj 2005 Posty: 5617 Skąd: From Alex Stadt
|
Wysłany: Pią Wrz 24, 2010 1:04 am Temat postu: |
|
|
Po co za pomocą assemblera chcesz to pisać? Assembler jest najbliżej sprzętu i - przez to - jest najbardziej zróżnicowanym językiem, jaki kiedykolwiek chyba powstał. Różni się strasznie! Od samego nazewnictwa komend aż po zachowanie kodu samo w sobie. PC'towski assembler to - jak dla mnie oczywiście - resuscytacja 30-dniowych zwłok. Kiedyś może miał sens. Teraz jest to dość skomplikowany język. Pewnie przez zgodność wsteczną. W mikrokontrolerach jest kompletnie inaczej - wszystko jest sprowadzane do najprostszej (w końcu taką formę ma przyjąć asm) i najniższej postaci. Tam ma to sens grzebanie w asmie - co zresztą często się robi, jak się ma max. 20MHz pod maską :P
Jednak do czego zmierzam: najlepszym, najszerzej obsługiwanym, najoptymalniejszym, wieloplatformowym (nie tylko windows, linux. Są kompilatory do praktycznie każdego sprzętu) i jednocześnie prostym do zrozumienia językiem jest C, często C++. Jak chcesz się bawić w przeprogramowywanie układów - nie ma to sensu w assemblerze. Przynajmniej na początku _________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS d- s---:--->+:+ a-->--- C++(+++) U-- P+ L-- E-- W++ N+ o-- K- w++(+++) O--- M-(--) V-- PS PE++ Y PGP- t 5 X++ R tv- b+ DI- D+++(++++) G++ e h* r+ y? ------END GEEK CODE BLOCK------ Alternatywny komunikator GG |
|
| Powrót do góry |
|
 |
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Możesz dodawać załączniki na tym forum Możesz pobierać pliki z tego forum
|
 Debug: strone wygenerowano w 0.12314 sekund, zapytan = 7
|