Stap 4: Het 4-cijferige display codering
Laten we denken over hoe we willen de code dit display.
Wij wil de gebruiker toetsenbord drukknoppen en hebben de nummers achter elkaar verschijnen op het display als ze druk op elke knop. Dus als ik druk een 1 gevolgd door een 2 zal het verschijnen op het display als 12. Ik zou ook willen slaan die waarde, 12, voor intern gebruik, maar we zullen krijgen dat een beetje later. Voor nu wil ik schrijf een nieuwe macro die neemt uw toetsaanslagen en geeft deze weer. Omdat we alleen de 4 cijfers die ik wil ervoor zorgen kunt het alleen u echter om vier nummers te typen.
Een ander probleem is dat de manier waarop de multiplexed 4-cijferige weergave werkt is door het fietsen van de anoden zodat elk cijfer is alleen op voor een fractie van een seconde voordat de volgende en vervolgens de volgende wordt weergegeven en uiteindelijk terug naar de eerste weer, enz. We moeten dus een manier om te coderen dit.
Wij willen ook de cursor te verplaatsen "" over aan de rechterkant een ruimte wanneer we de volgende cijfer typt. Zodat als ik typen 1234 bijvoorbeeld wilt, nadat ik typ de 1, beweeg de cursor over zodat ik typ volgende cijfer zal worden weergegeven in de volgende 7-segment display en zo verder. Alle terwijl dit gebeurt ik nog wil zitten kundig voor zien wat ik heb getypt zodat het nog moet worden doorlopen van de cijfers en deze weer te geven.
Klinkt als een lange orde?
Dingen zijn eigenlijk erger. We moeten de 4 meer General-Purpose registers die we gebruiken kunnen voor het opslaan van de huidige waarden van de 4 cijfers die we willen worden weergegeven (als we gaan doorlopen we hebben om ze ergens opgeslagen te houden) en het probleem met dit is dat we zijn geweest using General-Purpose registers als een gek en als we niet oppassen dat we hoeft niet weggegaan. Dus is het waarschijnlijk een goed idee om aan te pakken die uitgeven eerder vroeger dan later en toont u hoe registers vrijmaken door gebruik te maken van de stack.
Dus laten we beginnen met de vereenvoudiging van dingen een beetje, gebruik van de stack en vrijmaken van sommige registers en dan kunnen we zullen proberen om de taak van het lezen en weergeven van onze nummers op het 4-cijferige display.