Indholdsfortegnelse:
Definition - Hvad betyder ikke-flygtigt register?
Et ikke-flygtigt register er en type register med indhold, der skal bevares under subroutine opkald. Hver gang værdien af et ikke-flygtigt register ændres af rutinen, skal den gamle værdi gemmes på stakken, før registeret ændres, og denne værdi skal gendannes, før den returneres. Et register ligner en variabel, bortset fra at der er et fast antal registre. Hvert register er en unik placering i CPU'en, hvor en enkelt værdi gemmes. Et register er det eneste sted, hvor matematiske funktioner, såsom tilføjelse, multiplikation, subtraktion osv., Kan udføres. Registrer har ofte pegepunkter, der henviser til hukommelsen. At flytte værdier mellem hukommelse og registre er et almindeligt fænomen.
Techopedia forklarer ikke-flygtigt register
Følgende er et par eksempler på ikke-flygtige registre:
- ebx : Et ikke-flygtigt register, der bruges til generelle formål. Det sættes normalt til en fælles værdi gennem en funktion til at fremskynde beregningerne.
- esi : Et ikke-flygtigt register, der bruges til generelle formål. Det bruges ofte som en markør, især til "rep-" klasseinstruktioner, der kræver en kilde og destination for data. Her peger esi på kilden. En esi indeholder generelt data, der bruges alle gennem en funktion, da de ikke er tilbøjelige til ændringer.
- edi : Et andet ikke-flygtigt register, der bruges til generelle formål. Dette bruges ofte som en markør. En edi er identisk med en esi med den undtagelse, at den normalt peger på destinationen.
- ebp : Et andet ikke-flygtigt register, der bruges som et generelt register. Det har to karakteristiske anvendelser baseret på kompilationsindstillingerne. Det er enten et almindeligt register eller en rammemarkør. Hvis samlingen ikke er optimeret, eller hvis koden er håndskrevet, overvåger ebp placeringen af stakken, når en funktion begynder. Da stakken ændres gennem en funktion, når ebp er indstillet til den oprindelige værdi, kan der let henvises til de variabler, der er gemt på stakken. Hvis kompilering er optimeret, vil ebp blive brugt som et generelt register til lagring af alle typer data, mens beregningerne for stakviseren udføres afhængigt af dens bevægelse.