Asembler x86/Narzędzia: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Mythov (dyskusja | edycje)
Mythov (dyskusja | edycje)
Linia 7:
* '''Netwide Assembler ([http://nasm.sourceforge.net/ NASM])'''
* '''Flat Assembler ([http://flatassembler.net/ FASM])'''
{| class="wikitable" align=right style="text-align: center"
Pierwsze dwa asemblery są dostępne jedynie w wersjach dla systemu Windows, zaś NASM jest dostępny w wersjach dla większości platform (szczególnie popularny w środowiskach Linuksowych). Wszystkie asemblery są niemal identyczne w działaniu. Główne różnice leżą w makroinstrukcjach i dyrektywach, lecz i tutaj można zauważyć wiele podobieństw.<br\ >
|+ '''porównanie poszczególnych asemblerów'''
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\ >
!
!MASM
!TASM
!NASM
!FASM
|-
|'''popularność'''
|b. duża
|spora
|średnia
|średnia
|-
|'''platformy'''
|Windows
|Windows
|Windows, Unix
|Windows, Unix
|-
|'''wer. 64-bitowa'''
|tak
|nie
|nie
|tak
|-
|'''aktywność'''
|mała
|brak
|spora
|spora
|-
|'''dostępność'''
|bezpłatny
|komercyjny
|open-source
|open-source
|}
Pierwsze dwa asemblery są dostępne jedynie w wersjach dla systemu Windows, zaś NASM jesti dostępnyFASM w wersjachwieloplatformowe. dlaWszystkie większościasemblery platform (szczególnieniemal popularnyidentyczne w środowiskach Linuksowych)działaniu. WszystkieNie asembleryma tu niemalwiększego identyczneznaczenia wcoś działaniutakiego jak optymalizacja znana z kompilatorów języków wysokiego poziomu. Główne różnice leżą w makroinstrukcjach i dyrektywach, lecz i tutaj można zauważyć wiele podobieństw.<br\ >
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, zaś FASM posiada wbudowany linker.<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 jako optymalizatory).
 
== Debuger ==