嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。
性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的(不考虑机器语言- -)。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言,orz- -),使用汇编语言的不多。
相对于C,其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。对于嵌入式系统,性能的瓶颈是非常致命的,很可能某种用C编写的程序可以达到预期目标,而用其它语言使用同样算法编写的程序就不行。(不过也正因为这个原因,在嵌入式系统上实现的可用编程语言并不多。)
基于系统的用途,安全性设计嵌入式系统也是必须考虑的一个部分(比如说用于医疗卫生设施),必须尽可能在开发期间减少潜在的错误。这方面C不占优势,但如果保证代码严格遵守安全规范,也可以接受(相对而言,汇编就郁闷了- -)。
开发效率和安全性类似,也在可接受范围之内。