Wpis z mikrobloga

#programowanie #gnu #assembler
Jak nalezy napisać skrypt ld aby etykieta (sekacja) znalazła się pod danym adresem a kod pod nią w kolejnych bajta od zadanej lokacji? Napisałem coś takiego ale nie jestem pewien czy to to czego potrzebuje:

.upper_ram_code 0x3B9ACA00 :
{
*(.upperCode)
*(._1GB_SEGMENT)
}

W samym kodzie mam po prostu etykiety .upperCode i 1GBSEGMENT
  • 7
  • Odpowiedz
@wytrzzeszcz: Poprawiłem do postaci:
.upperramcode ALIGN(0x3B9ACA00) : ALIGN(0x3B9ACA00)
{
*(.upperCode)
*(.1GBSEGMENT)
}
I z objdump -h file.bin mam: 6 .upper_code 00000006 40000000 40000000 40000000 2**30

Czyli chyba cel osiągniety bo symbol jest pod adresem 1GB. Ale czy mógłbyś podpowiedzieć jak moge w runtime przepisać kod do danego miejsca?
  • Odpowiedz