Asembler x86/Narzędzia: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Nasm nie jest własnością firmy intel. Stworzony został przez grupę programistów (i nie tylko) nie związaną z intelem. Jest WOLNY (GNU LGPL). |
m drobne |
||
Linia 1:
Aby móc cokolwiek zrobić z naszą wiedzą nt. języka
== Asembler i linker ==
Program tłumaczący kod z
* '''Microsoft Macro Assembler ([http://www.masm32.com/ MASM])''' firmy Microsoft
* '''Turbo Assembler ([http://info.borland.com/borlandcpp/cppcomp/tasmfact.html TASM])''' firmy Borland
* '''Netwide Assembler ([http://nasm.sourceforge.net/ NASM])'''
Pierwsze dwa asemblery są dostępne jedynie w wersjach dla systemu Windows, zaś NASM jest dostępny w wersjach dla większości platform
Asembler tworzy pliki .obj, które następnie można połączyć w plik wykonywalny za pomocą '''linkera'''. MASM jest udostępniany z własnym linkerem link.exe, TASM z Turbo Linkerem, zaś NASM jest z reguły używany w połączeniu z programem GNU Linker lub ALINK.<br\ >
Wybierz jeden z powyższych asemblerów i omijaj rozdziały, które go nie dotyczą (rozdziały, w których składnie asemblerów różnią się, są w kilku kopiach, po jednej dla każdego asemblera).<br\ >
Który więc asembler wybrać? Jeśli interesuje Cię programowanie jedynie dla systemu Windows, dobrym wyborem jest MASM, jeśli chcesz mieć możliwość programowania pod niemal każdą platformę, wybierz asembler NASM (64-bitowa wersja jest obecnie w fazie testów). TASM także jest dobrym asemblerem, ale jest płatny, przez co nie polecam korzystania z niego, gdyż wydajność tworzonego kodu jest praktycznie identyczna w przypadku wszystkich 3 asemblerów (nie mają tu żadnego znaczenia programy znane z języków wysokiego poziomu
== Debuger ==
Debugery mają za zadanie pomóc programiście w odnalezieniu błędów w programie. Większość debugerów pozwala dodatkowo na wstawianie w kodzie tzw. punktów wstrzymania, gdzie to debugger wstrzymuje działanie programu do czasu, dopóki nie dostanie odpowiedniej komendy od programisty. Debugery dodatkowo pozwalają na odczytanie wartości rejestrów procesora, czy wartości poszczególnych zmiennych. Obecnie najpopularniejszy debuger to '''[http://www.ollydbg.de/ OllyDbg]''', jednak do prostych zastosowań wystarczą również proste debugery, dostarczane wraz z asemblerami. Wielu programistów uważa je za zupełnie opcjonalne narzędzie, jednak większość starszych doświadczonych programistów jest ich fanatycznymi zwolennikami i tępi
== Disasembler ==
Disasembler to program tłumaczący kod maszynowy na język asemblera. Z reguły proste disasemblery dostarczane są w pakiecie wraz z asemblerami (bardzo dobry disasembler dostarczany jest wraz z asemblerem NASM). Jako, że jest to proces dość złożony, istnieje wiele komercyjnych disasemblerów, z których wg. ogólnej opinii najlepszy to '''[http://www.datarescue.com/idabase/index.htm IDA Pro Disassembler]'''. Dzięki tej grupie programów możemy wejrzeć w kod cudzych programów, jednak
== IDE ==
Zintegrowane środowisko programistyczne (ang. ''integrated development environment'' ('''IDE''')) łączy w sobie wszystkie powyższe narzędzia, dodając
* [http://www.programmersheaven.com/download/35506/download.aspx Chrome IDE] ([http://upload.wikimedia.org/wikibooks/pl/f/f5/Chrome_IDE_screenshot.png zrzut ekranu])
* [http://www.radasm.com/ RadASM] ([http://www.radasm.com/pics/pics.html zrzuty ekranu])
|