Minnesadress
En minnesadress är ett heltal som utgör ett unikt "namn" för en del av ett minne som en dator kan använda för att lagra data för senare åtkomst. I moderna bytebaserade datorer motsvarar varje unik adress en enda byte i minnet; datamängder som är större än en byte kan lagras i flera efter varandra följande adresser. Några datorer gjordes ordbaserade, där den typiska lagringsenheten var större än en byte (till exempel PDP-10).
Beroende på adresstorleken hos en viss dator, kan den komma åt fler eller färre adresser. Ofta är adresstorleken lika stor som ordstorleken hos en dator: exempelvis har en Intel 80386-processor (som är en 32-bitars processor) en adresstorlek på 32 bitar. Detta möjliggör upp till 232 unika byteadresser, alltså 4 gibibyte. År 2005 blev 64-bitars processorer vanliga. Dessa kan teoretiskt adressera 264 bytes (eller 16 exbibytes), ett enormt adressomfång. Som jämförelse kan nämnas att vid 1900-talets slut uppskattades summan av all mänsklig kunskap (inklusive audio, video och text) vara 12 exbibyte Juan Enriquez - The Data That Defines Us.
Dock styr ordstorleken inte alltid adresstorleken. I tidigare mikroprocessorer som till exempel MOS Technology 6502 är ordstorleken bara 8 bit, vilket möjliggör endast 256 olika värden. Detta är väldigt begränsande, även för en så enkel dator. Adresstorleken på dessa processorer var istället 16 bitar, vilket gav 65536 möjliga adresser. Intels 8086-processor hade 16-bitarsord, men adresstorleken var 20 bitar — 1 mebibyte.
Minnesadresser skrivs ofta med hexadecimala eller oktala siffror, eftersom det då är enkelt att räkna om till binärtal.
Adresseringslägen
[redigera | redigera wikitext]Det finns flera olika sätt för en processor att adressera data. Den mest basala är den absoluta adressen som pekar till en viss fix position i minnet oavsett var man befinner sig just nu. En annan är den relativa adresseringen som utifrån positionen programmet befinner sig på just då adderar eller subtraherar ett tal för att räkna ut adressen.