Wzorzec dwóch plików
Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 5 z 45.
W trakcie całego tego kursu będziesz pisać każdy program w dwóch osobnych plikach:
| Plik | Przeznaczenie |
|---|---|
data.asm | Przechowuje wszystkie dane (ciągi znaków, liczby, zmienne) |
main.asm | Przechowuje cały kod (instrukcje, logikę, przepływ) |
Nie jest to wymagane przez asembler. Możesz umieścić wszystko w jednym pliku. Oddzielenie kodu od danych sprawia jednak, że Twoje programy są bardziej przejrzyste, łatwiejsze do czytania i debugowania.
Dlaczego dwa pliki?
- Organizacja: Dane i kod mają różne zastosowania. Trzymanie ich osobno pomaga jasno myśleć.
- Możliwość ponownego użycia: Możesz używać tego samego pliku
data.asmz różnymi plikamimain.asm.
- Czytelność: Nie musisz przewijać długich ciągów znaków, aby znaleźć swój kod.
- Praktyka branżowa: W rzeczywistych projektach kod i dane są rozdzielane (choć często w bardziej złożony sposób).
Jak to działa:
Plik main.asm dołącza plik data.asm za pomocą dyrektywy %include. Informuje to asembler: „wstaw całą zawartość pliku data.asm właśnie tutaj przed asemblacją”.
Dwa pliki obok siebie:
| data.asm | main.asm |
|---|---|
section .data | %include "data.asm" |
| (tu umieść zmienne) | section .text |
global _start | |
_start: | |
| (tu umieść instrukcje) |
Co robi każda sekcja:
| Sekcja | Cel | Jaki plik? |
|---|---|---|
section .data | Zawiera dane istniejące w pamięci podczas działania programu | data.asm |
section .text | Zawiera wykonywalne instrukcje (kod) | main.asm |
global _start | Udostępnia punkt wejścia konsolidatorowi | main.asm |
_start: | Etykieta, od której rozpoczyna się wykonywanie programu | main.asm |
Nie musisz na razie zapamiętywać
section .data,section .text,global _startani_start:. Omówimy szczegółowo każde z tych poleceń w kolejnych lekcjach. Na razie przyjrzyj się ogólnemu obrazowi i zrozum strukturę obu plików.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
1Maszyna
Czym jest CPUPamięćRejestry a pamięćJak działają instrukcjeWzorzec dwóch plikówArchitektura x86-642Systemy liczbowe
Dlaczego system binarny?Liczby binarneZamiana z systemu dziesiętnego na binarnyDlaczego system szesnastkowy?Zamiana z systemu szesnastkowego na dziesiętnyZamiana z systemu dziesiętnego na szesnastkowyASCII i system szesnastkowy5Wywołanie systemowe zakończenia
Czym jest syscall?Wywołanie systemowe zakończenia (60)Kody zakończeniaPodsumowanie: prawidłowe zakończeniePoćwicz samodzielnie: Edytor online Assembly