|
发表于 2018-2-23 15:53:48
|
显示全部楼层
机器码只是内存中的二进制序列(常用16进制表示),CPU可以按内存地址直接读取并执行;
内存中的二进制序列(机器码)如需加以保存,则要按一定的规则组织成文件存储在外存中;
存储的规则有多种,比如:BIN文件、HEX文件、文本文件、COM文件、EXE文件等表达。
BIN文件是直接将二进制序列打包成连续的文件,加上文件头尾封装构成,有效载荷与机器码完全相同。但如果中间有大片的空白区域内容相同,BIN也一样要记录,因此要记录1K内存中的的机器码,BIN就要至少1K的容量再加上文件结构占用的消耗。
而HEX文件采取了一种有效的方法,对机器码分段,并在每段前面加上地址码。这样一来,当内存中存在大量空白区域时,HEX文件就不用向BIN那样全部表达,只需要表达有用的部分即可,其它的按照填充规则来处理。
HEX和BIN都可以采取一定的方法固化到系统中称为固件,开机不用加载就可以直接运行。
如果需要操作系统加载运行,就将二进制机器码和运行环境参数(PSP-程序段前缀)进行拼接形成.COM或.EXE文件,操作系统可以调用后根据PSP安排运行条件,并把其中的机器码部分加载到内存执行。
如果需要将机器码或其它文件显示出来给人看,那就可以将机器码里的内容全部转化成ASCII码,这样打开后就可以直接在中端上查看了。
当然差别还很多,用途也各异,反正就是这个意思。
|
评分
-
1
查看全部评分
-
|