Ja und nein, wenn Sie eine Hochsprache wie C #, Java oder ähnliches verwenden, schreiben Sie ein Programm. Sie geben also Anweisungen an die CPU, aber zwischen Ihrem Code und der CPU gibt es eine Zwischenschicht Im Wesentlichen wird der Code auf hoher Ebene in den Prozessor übersetzt. Im Falle von C # wird dies .NET Framework, JVM für Java usw. sein.
Dann haben Sie Ihre einfachen Sprachen, in denen Sie sehr genau wissen müssen, auf welcher CPU Ihr Code ausgeführt wird. Assembler ist eine dieser Sprachen.
Wikipedia bietet eine Vielzahl an Informationen zu diesem Thema.