|
发表于 2018-2-5 20:46:48
|
显示全部楼层
汇编变量是人为的分配的,不是编译器分配管理的。C里面的变量是编译器分配管理的,所以C里面的变量要类型,这样C编译根据类型来分配变量占用的内存大小。在单片机中,不同的单片机的内存宽度不同,有8位宽的、有16位宽的,也有32位宽的,在8位宽的芯片中,你定义个int类形,要占用2字节内存,用汇编声明就要声明成2个字节分别为高低部分,也就是编程的人知道这2个字节是同一个数据,汇编处理这个数据时要对这2个字节协同处理,要多个指令。那么C里面呢,编译器知道类型是int型,就分配2个字节出来,使用时C编译器会用多个相应的指令来处理这个数据的。如果C没有数据类型,C编译器就不知道咋处理了。实际汇编是人为的指派变量在内存中的地址,而C里面把指派地址的任务交给了C编译器,这样编程从员就不用再算计管理内存了,C编译代劳了,这样解放了程序员的部分工作。 |
|