Inhoudsopgave:
Definitie - Wat betekent niet-vluchtig register?
Een niet-vluchtig register is een type register met inhoud dat moet worden bewaard tijdens subroutine-oproepen. Wanneer de waarde van een niet-vluchtig register door de routine wordt gewijzigd, moet de oude waarde op de stapel worden opgeslagen voordat het register wordt gewijzigd en moet die waarde worden hersteld voordat deze terugkeert. Een register lijkt op een variabele, behalve dat er een vast aantal registers is. Elk register is een unieke locatie in de CPU waarin een enkele waarde wordt opgeslagen. Een register is de enige plaats waar wiskundige functies, zoals optellen, vermenigvuldigen, aftrekken, enz. Kunnen worden uitgevoerd. Registers bevatten vaak verwijzingen naar het geheugen. Het verplaatsen van waarden tussen geheugen en registers is een veel voorkomend verschijnsel.
Techopedia verklaart Non-Volatile Register
Hier volgen enkele voorbeelden van niet-vluchtige registers:
- ebx : een niet-vluchtig register dat voor algemene doeleinden wordt gebruikt. Het wordt meestal ingesteld op een gemeenschappelijke waarde tijdens een functie om de berekeningen te versnellen.
- esi : een niet-vluchtig register dat voor algemene doeleinden wordt gebruikt. Het wordt vaak gebruikt als een aanwijzer, vooral voor "rep" -klasse-instructies die een bron en bestemming voor gegevens vereisen. Hier verwijst de esi naar de bron. Een esi bevat doorgaans gegevens die door een functie worden gebruikt, omdat deze niet gevoelig zijn voor wijzigingen.
- edi : Een ander niet-vluchtig register dat wordt gebruikt voor algemene doeleinden. Dit wordt vaak gebruikt als een aanwijzer. Een edi is identiek aan een esi, behalve dat het meestal naar de bestemming verwijst.
- ebp : een ander niet-vluchtig register dat wordt gebruikt als een register voor algemene doeleinden. Het heeft twee onderscheidende toepassingen op basis van de compileerinstellingen. Het is een register voor algemene doeleinden of een kaderwijzer. Als de compilatie niet is geoptimaliseerd of als de code met de hand is geschreven, controleert ebp de locatie van de stapel wanneer een functie begint. Omdat de stapel door een functie wordt gewijzigd, kunnen ebp gemakkelijk worden verwezen naar de variabelen die op de stapel zijn opgeslagen wanneer ebp op de oorspronkelijke waarde is ingesteld. Als de compilatie is geoptimaliseerd, wordt ebp gebruikt als een register voor algemene doeleinden om elk type gegevens op te slaan, terwijl de berekeningen voor de stapelaanwijzer worden uitgevoerd afhankelijk van de beweging.