Innehållsförteckning:
Definition - Vad betyder icke-flyktigt register?
Ett icke-flyktigt register är en typ av register med innehåll som måste bevaras under subroutina samtal. Närhelst värdet på ett icke-flyktigt register ändras av rutinen måste det gamla värdet sparas på bunten innan registret ändras och detta värde måste återställas innan det returneras. Ett register liknar en variabel, förutom att det finns ett fast antal register. Varje register är en unik plats i CPU där ett enda värde sparas. Ett register är det enda stället där matematiska funktioner, som tillägg, multiplikation, subtraktion, etc., kan utföras. Register har ofta pekare som hänvisar till minnet. Att flytta värden mellan minne och register är ett vanligt fenomen.
Techopedia förklarar Non-Volatile Register
Följande är några exempel på icke-flyktiga register:
- ebx : Ett icke-flyktigt register som används för allmänna ändamål. Det är vanligtvis inställt på ett gemensamt värde genom en funktion för att påskynda beräkningarna.
- esi : Ett icke-flyktigt register som används för allmänna ändamål. Det används vanligtvis som en pekare, särskilt för "rep-" klassinstruktioner som kräver en källa och destination för data. Här pekar esi på källan. En esi innehåller vanligtvis data som används hela funktionen eftersom de inte är benägna att ändras.
- edi : Ett annat icke-flyktigt register som används för allmänna ändamål. Detta används vanligtvis som en pekare. En edi är identisk med en esi, med undantag för att den vanligtvis pekar på destinationen.
- ebp : Ett annat icke-flyktigt register som används som ett allmänt register. Den har två distinkta användningsområden baserade på kompileringsinställningarna. Det är antingen ett allmänt register eller en rampekare. Om kompileringen inte har optimerats eller om koden är handskrivet, övervakar ebp platsen för stacken när en funktion börjar. Eftersom stacken ändras genom en funktion, när ebp är inställt på det ursprungliga värdet, tillåts de variabler som sparats på stacken enkelt hänvisas till. Om kompilering har optimerats kommer ebp att användas som ett allmänt register för att lagra vilken typ av data som helst, medan beräkningarna för stapelpekaren utförs beroende på dess rörelse.
