Bytes Binary是指编译最终生成的二进制机器代码实际占用的字节数。
Bytes Source 是指编译汇编源文件初步生成的二进制代码(不是最终的机器代码)占用的字节数。
DJNZ Rn,rel 里有3个语素,DJNZ、Rn和rel。汇编器根据汇编源文件第一次会得到3字节二进制代码,分别对应DJNZ、Rn和rel。在第二步汇编时,因为Rn是寄存器地址,所以被合并到DJNZ的二进制代码中。从而最终生成可执行的2字节机器代码。
DJNZ dir8,rel 里也有3个语素,DJNZ、dir8和rel。汇编器根据汇编源文件第一次也会得到3字节二进制代码,分别对应DJNZ、dir8和rel。在第二步汇编时,因为dir8是直接地址,不能被合并。从而最终生成可执行的3字节机器代码。
同理,假如你用CJNZ指令,那Bytes Binary是3,而Bytes Source应是4。
Bytes Source没有太大的实际使用意义,除非你是搞编译器而不是单片机程序开发的。Bytes Binary倒是应该被关注,因为可以节约代码。
温馨提示:内容为网友见解,仅供参考