单片机的汇编代码中,代码的字节数怎么确认的??考研狗求问。。。。

如题所述

111 条指令,最少1字节,最多3字节。

指令,至少应该有一个操作码,占一个字节。

另外,再有一个立即数,就再占用一个字节。

另外,再有一个地址号码(或转移的偏移量),就再占用一个字节。
(只有:LJMP 0030H,是 16 位地址,占两个字节。)

就这三种情况。追问

你说的这个地址号码就是转移量吧,只有立即数占一个字节么例如MOV A, @R0是不是三个字节??

问号处帮忙解释一下吧

万分感谢啊

追答

MOV A, @R0,是一个字节。


A、Rn、这些是寄存器寻址;

@Ri,这些是寄存器间接寻址;

MUL   AB,也是寄存器寻址;

……


这些,都不属于上面我说的【立即数、地址】。

故此,仅有一字节的操作码。


你的插图标注如下:

追问

大神啊,谢谢啦

追答

共有下面三条指令,地址是 16 位数:

LJMP addr16
LCALL addr16
MOV DPTR, #addr16

它们的地址,要占两个字节。
加上一字节的操作码,每条指令,都是三个字节。
-------------------
AJMP、ACALL,这两条,地址虽有 11 位数。
但是,也仅仅使用一个字节的地址。
另外三位地址,融合到操作码中了。
-------------------
单片机的一条条指令,其占用空间,一眼就能看出来。
其实并不难,只要做过人工汇编(即人工查表,求出机器码),
做一遍两遍,就知道规律了,都不用做第三遍。

另外:
单片机的一条条指令,其执行时间,也是可以看出来的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-13
需要帮你做设计吗追问

不需要,我考研有单片机,没学过,小白啊

追答

好的

第2个回答  2014-11-13
没有吧