Co to jest format pliku ASM?
Pliki .asm przechowują kod źródłowy aplikacji napisanych w niskopoziomowym języku programowania. Format ten przechowuje dane w formacie tekstowym, do którego można uzyskać dostęp za pomocą dowolnego edytora tekstu. Zaleca się jednak korzystanie z dedykowanych edytorów, ponieważ oferują one pomocne funkcje, takie jak numerowanie linii i podświetlanie składni.
Asembler to niskopoziomowy język programowania, który ściśle współpracuje z instrukcjami kodu maszynowego architektury procesora. Kod asemblera jest przechowywany w plikach .asm. Pierwsze asemblery powstały pod koniec lat 40. XX wieku. Język ten cieszył się dużą popularnością do lat 80. (lub 90., w zależności od architektury), kiedy to wprowadzono języki wyższego poziomu, takie jak C czy Pascal. Języki programowania wysokiego poziomu oferowały czystszą składnię i bardziej intuicyjny interfejs programistyczny, a także znacznie rozszerzoną funkcjonalność. Niemniej jednak asembler jest nadal językiem z wyboru, gdy wydajność jest krytyczna lub gdy kod musi bezpośrednio współdziałać ze sprzętem - jest używany w jądrach systemów operacyjnych, programach rozruchowych (bootloaderach), oprogramowaniu układowym (firmware) i sterownikach urządzeń.
Języki asemblera są również wykorzystywane do pisania złośliwego oprogramowania lub wirusów komputerowych, które bezpośrednio atakują procesory i omijają wiele procedur systemu operacyjnego.
Kod źródłowy przechowywany w pliku .asm musi zostać przetworzony przez asembler - nie kompilator - który konwertuje go na plik obiektowy kodu maszynowego (.obj lub .o). Następnie linker łączy jeden lub więcej plików obiektowych w uruchamialny plik wykonywalny, taki jak plik EXE. Typowe asemblery to MASM (Microsoft Macro Assembler), NASM i GNU as (GAS). Każdy z nich używa innego dialektu; kod źródłowy .asm napisany dla MASM zazwyczaj nie jest kompatybilny z GAS bez modyfikacji.
Bezpieczeństwo
RYZYKO: LOWCzytanie lub edytowanie pliku .asm jest całkowicie bezpieczne - jest to zwykły tekst i nie robi nic, dopóki nie zostanie asemblowany i uruchomiony. Ryzyko tkwi jedynie w tym, co kod ROBI po jego asemblowaniu i wykonaniu: jak każdy kod źródłowy, .asm może zawierać złośliwą logikę, a asembler jest powszechną formą dla shellcode'u i dowodów koncepcji (PoC) malware. Sprawdź nieznany asembler przed jego zbudowaniem i nigdy nie uruchamiaj skompilowanego pliku binarnego z niezaufanego .asm bez jego zrozumienia. Sam plik nie zawiera makr ani mechanizmów automatycznego wykonywania.
Szczegóły formatu
w pigułce- Plik złożenia SolidWorks / Pro-ENGINEER (Creo) - Niektóre narzędzia CAD używają rozszerzenia .asm dla binarnych dokumentów złożeń 3D (Pro/E .asm oraz nieformalnie dla SolidWorks); są to binarne pliki CAD, niezwiązane z kodem źródłowym asemblera - zobacz .sldasm.
- Generyczne pliki danych „assembly” - Różne niszowe aplikacje nazywają pliki danych złożeń części lub złożeń produkcyjnych rozszerzeniem .asm; należy je identyfikować na podstawie aplikacji macierzystej.
Programy otwierające pliki ASM
Szczegóły techniczne
specyfikacja| Typ pliku | Kod źródłowy języka asemblera w formacie tekstowym |
| Typ MIME | text/x-asm (również text/x-assembly, text/plain) |
| Kodowanie znaków | ASCII lub UTF-8; starsze źródła DOS mogą używać stron kodowych, takich jak CP437 |
| Sygnatura pliku | Brak - brak magicznych bajtów; identyfikowany po rozszerzeniu i zawartości (mnemoniki i dyrektywy) |
| Struktura linii | Każda linia zawiera opcjonalną etykietę, mnemonik z operandami i opcjonalny komentarz |
| Składnia komentarzy | ; w MASM/NASM; # lub @ w GNU as (GAS); * w niektórych asemblerach 6502/68k |
| Typowy rozmiar pliku | 1 KB - 500 KB; generowane pliki listingu mogą być większe |
| Produkt wyjściowy | Asemblowany do pliku obiektowego (.obj / .o), a następnie zlinkowany w plik wykonywalny |
| Typowe dialekty asemblera | MASM, NASM, GNU as (składnia AT&T), TASM, asembler ARM/Keil |
| Docelowe architektury ISA | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80 i wiele innych |
| Przenośność dialektów | Nieprzenośny między dialektami asemblera bez modyfikacji; składnia i dyrektywy znacznie się różnią |
| Obsługa makr | Obsługiwana w większości asemblerów: MACRO/ENDM w MASM, %macro/%endmacro w NASM, .macro/.endm w GAS |
| Mechanizm dołączania | INCLUDE (MASM), %include (NASM), .include (GAS) - dzieli źródło na wiele plików |
| Typowe przypadki użycia | Jądra systemów operacyjnych, programy rozruchowe, oprogramowanie układowe, procedury kryptograficzne, krytyczne ścieżki silników gier, analiza złośliwego oprogramowania |
| Wydano | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Najnowsza wersja | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | sourceware.org |
Konwersje ASM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki ASM.