你问这个问题,应该是语言初学者,其实原理很简单,因为低级语言直接控制的是硬件具体的寄存器锁存器或者其他的设备,好比是老师叫你跳一下,你就跳一下(你有这个能力),但是假设老师叫你飞起来,你飞不起来(你没有这个能力),这就是低级语言直接运用在硬件上的例子;高级语言不是直接和硬件打交道的,是为了实现某一个目的,比如你用c算一个1+1,虽然你在描述的时候会设一个int a和int b,然后给他们赋值在运算,但实际上这里的a和b是一个虚拟的东西,所谓高级语言高级的地方就体现在这里,高级语言和它所在的硬件系统是兼容的,那么它会自动的把虚拟的a和b放到实际的硬件中,进而运算。在举个例子,在低级语言上,由受收到寄存器的限制,那么可能你只能在一个8位寄存器中放8位二进制数,但是在高级语言中你可以任意的令一个d=999999999999,甚至更多,虽然在实际操作中它会自动的摆到更多的寄存器中,但这是软件帮你实现的。所以你不要光看到高级语言的好处,高级语言能够实现的前提是系统中要已经有一个兼容系统(也就是兼容硬件)的高级语言软件才能编写。最通俗的讲,一台没装系统的计算机,你可以用低级语言干所有的活,但是如果你只会高级语言,讲什么都干不了。
一般对于特性硬件平台的计算机,高级语言的安装版本会选择属于你自己的硬件平台的版本,这样就不必关注你用的是什么平台了。对于嵌入式平台,一般需要在宿主机建立一个交叉编译环境(特定的硬件平台)。