Dit zijn eigenlijk twee vragen in één ...
Ten eerste, wat is het verschil tussen een microcontroller en een microprocessor?
Microprocessor is puur een CPU die een reeks instructies volgt die worden gelezen vanaf een externe geheugenbus. Het bestuurt externe randapparatuur (zoals scherm, toetsenbord, muis, harde schijf, enz.) Via een externe communicatiebus. Wanneer u een microprocessor programmeert, bevindt uw programma zich buiten het apparaat. In een computer is dit geheugen in eerste instantie het opstart-BIOS ROM dat in eerste instantie het besturingssysteem van de harde schijf in het RAM-geheugen leest en het vervolgens vanaf daar verder uitvoert.
Microcontroller is een beetje als een alles-in-één CPU + geheugen, met enkele externe poorten om te communiceren met de buitenwereld. Het is op zichzelf staand en gebruikt geen extern geheugen om zijn programma vast te houden (hoewel het indien nodig werkgegevens kan lezen en schrijven naar het externe geheugen).
Ten tweede is het programmeren van een microcontroller en een microprocessor hetzelfde ?
In sommige opzichten ja, en in sommige opzichten niet.
Assembly-taal is een brede term die een reeks instructies beschrijft die de CPU direct kan begrijpen. Wanneer je assembleertaal 'compileert', compileert het niet echt iets, het converteert het alleen naar een reeks bytes die de commando's en pluggen in sommige relatieve geheugenlocaties vertegenwoordigen. Dit is gebruikelijk voor zowel microprocessors als microcontrollers.
Verschillende typen CPU begrijpen echter een andere set CPU-instructies. Als je bijvoorbeeld een assembleertaalprogramma schrijft dat werkt met een pic 16F877-microcontroller, zal het complete onzin zijn voor een microprocessor of een andere microcontroller buiten de 16Fxxx-familie van pic-microcontrollers.
Dus hoewel assembly op een vergelijkbare manier werkt voor alle microprocessors en microcontrollers, is de daadwerkelijke lijst met instructies die je schrijft heel anders. Om in assembleertaal te schrijven, moet u een grondige kennis hebben van de architectuur van het apparaat, die u normaal gesproken uit de datasheet kunt halen in het geval van een microcontroller.