导航类网站模板,内江企业网站建设公司,wordpress图片集插件,做网站的条件1. asm文件 asm是汇编语言源程序的扩展名#xff0c;.asm文件是以asm作为扩展名的文件#xff0c;是汇编语言的源程序文件。汇编语言(Assembly Language)是面向机器的程序设计语言#xff0c;是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中#xff0c;用助…1. asm文件 asm是汇编语言源程序的扩展名.asm文件是以asm作为扩展名的文件是汇编语言的源程序文件。汇编语言(Assembly Language)是面向机器的程序设计语言是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中用助记符(Memoni)代替操作码用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码就把机器语言变成了汇编语言。
2. bin文件 bin文件是二进制文件是文件格式binary的缩写后缀名为.bin的文件表式它是binary格式。通常来说它的内容是机器代码汇编语言编译后的结果。
注意CPU执行 bin只需要将程序加载到其起始地址即可执行。uboot和Linux kernel启动时没有ELF Loader所以烧在flash上的文件只能是raw bin即镜像文件image
BIN文件是 raw binary 文件这种文件只包含机器码。 BIN文件也叫镜像文件中的所有数据都是机器可以执行的指令码、指令参数或者常量数据不包含其它调试信息。加载到内存或者Nor FLASH等支持XIP就地执行的存储器中规定好的加载地址之后直接从规定好的运行地址开始运行即可。例如单片机中烧写的都是bin文件以STM32为例其片内Nor FLASH的起始地址也是代码的加载烧写地址为0x08000000。上电复位或者手动复位之后程序计数器PC指向单片机的复位异常的中断向量地址0x08000004的位置单片机从复位开始运行。
3. hex文件 hex全称baiIntel HEX是可以烧写到单片机中被单片机执行的一种文件格式。通常用于传输将被存于ROM或者EPROM中的程序和数据。是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。大多数EPROM编程器或模拟器使用Intel HEX文件其记录由对应机器语言码和/或常量数据的十六进制编码数字组成。
4. elf文件 elf是Linux的主要可执行文件格式二进制文件。 elf文件除了机器码外还包含其它额外的信息如段的加载地址运行地址重定位表符号表等。
注意: CPU执行elf程序则需要一个ELF Loader, gcc编译出来的是elf文件objcpy将elf文件转换为bin文件 ELF文件除了机器码外还包含其它额外的信息如段的加载地址运行地址重定位表符号表等。 ELF文件相当于是对bin文件的一个包装和解释不仅仅包含程序的机器码还包含加载地址、运行地址和调试信息等使得运行操作系统带MMU的CPU运行的具有虚拟地址/内存映像功能的OS如Linux、Windows的机器中的ELF Loader模块能够根据elf头信息创建一个新进程并加载elf文件中的机器码到该进程的虚拟内存中去。例如在Linux系统上运行ls命令Linux系统会在环境变量中定义了的文件夹中找到可执行文件“ls”然后系统创建一个新的进程以及映射虚拟内存空间然后ELF Loader会将可执行文件“ls”加载到虚拟内存空间中去并开始执行开进程。注意虚拟地址空间也物理地址空间的寻址空间是一样的32位CPU的有4G的寻址空间64位的有好多G的寻址空间但是并不是所有虚拟地址空间中的地址都能访问MMU只会映射一部分虚拟地址空间到物理地址空间如果访问没有映射的虚拟地址空间就会出现内存访问错误Segmentation Fault
所以ELF文件的体积比对应的BIN文件要大。 因为elf文件中包含了bin文件内容外的其它信息。