单片机汇编语言的语言解释中,Bytes Binary 与 Bytes Source 分别代表什么意思啊,都有什么参考意义。

如题所述

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倒是应该被关注,因为可以节约代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-16
Bytes Binary指的是汇编解释器生成的机器指令的字节数
DJNZ Rn,rel DJNZ占一个字节,Rn是内部寄存器不占字节,rel占一个字节,所以指令占2字节
DJNZ dir8,rel DJNZ占一个字节,dir8八位立即数占一个字节,rel占一个字节,所以指令占3字节

Bytes Source应该是指汇编指令源码所占的字节数吧,不太好理解
相似回答