I. Programmiersprachen

Jede CPU arbeitet mit einem binären Code (%01010010), der sog.  Maschinensprache.  Im hardwarenahen Umfeld von Mikrocontroller-Applikationen wird deshalb oft in Assembler als einer maschinennahen Sprache (Low-Level-Language) programmiert.
Der daraus resultierende Quelltext (SourceCode) muss mit einem ebenfalls Assembler genannten Entwicklungstool in Maschinen-Code (ObjektCode) gewandelt werden. 
Mit einem Disassembler kann der MaschinenCode wieder in lesbaren Quelltext (Mnemonics), allerdings ohne Kommentare, zurückgeformt werden.
Die Assemblerbefehle sind auf die jeweilige Controllerfamilie zugeschnitten. So umfasst der Operationsvorrat für den 68HC11 um die 300 Befehle, derjenige für den AT90S1200 "nur" 89 Befehle.

Im Unterschied dazu sind höhere Programmiersprachen weitgehend hardwareunabhängig. Der SourceCode wird mit einem Compiler in MaschinenCode gewandelt. Ausnahmen bilden bestimmte BASIC-Dialekte wie bspw. QBASIC, die mittels Interpreter zeilenweise in ausführbaren ObjektCode übersetzt werden.
Derartige Programme sind einfach zu handhaben, eignen sich aber nicht für zeitkritische Anwendungen.