tablica symboli i tabela relokacji w pliku obiektowym
Z tego co rozumiem, instrukcje i dane w pliku obiektowym mają wszystkie adresy. Pierwszy element danych zaczyna się od adresu 0, a pierwsza instrukcja zaczyna się również od adresu 0.
Tabela relokacji zawiera informacje o instrukcjach, które należy zaktualizować, jeśli adresy w pliku ulegną zmianie, na przykład jeśli plik jest połączony z innym. Linia A w poniższym przykładzie będzie w tabeli relokacji. Nie sądzę, aby B znajdowało się w tabeli relokacji, ponieważ adres etykiety „równy” odnosi się do B. Czy te poprawne założenia?
Wiem, że tabela symboli pokazuje etykiety, które ma plik, a także etykiety, które nie zostały rozwiązane. Ale jakie inne informacje zawiera tablica symboli?
Ponadto, gdy asembler tłumaczy instrukcje na binarne, co umieszcza się w tych instrukcjach, które mają nierozwiązane odniesienia ?. B w tym przykładzie.
.data
TEXT: .asciiz "Foo"
.text
.global main
main:
li t0, 1
beq t0, 1, equal #B
equal:
la a0, TEXT
jal printf #A