Innerhalb des PCs isses egal, da man in der Regel fast ganicht mehr direkt mit der externen Hardware "redet".
Oftmals werden Schnittstellen-DLLs und Treiber angesprochen und das geht mit jeder Sprache (C++ C# Delphi
BASM ......).
Wie in der externen Hardware gearbeitet wird, hängt von dieser ab und ob da z.B. ein Mikrocontroller drin steckt.
Manchmal schaltet man extern auch nochmal eine µC dazwischen, welcher vom PC die Befehle bekommt und die eigentlich Hardware anspricht.
Diese µC kann man mit vielem befüllen.
Also die Programme innerhalb des PC-Programmierprogramms können Vieles sein.
Von
ASM, über C++, sogar Basic, Pascal und Anderes existert ... je nach µC oder ob es sogar eine größere CPU, ala x86-er Architektur.