为应付单片机理论知识考试,根据指令表,总结出了以下特征:
-
指令字节最长3字节,最短1字节
-
指令的操作码,必定要占用一个字节;
-
如果指令中,含有8位的立即数,必定要占用一个字节;
-
如果指令中,含有直接地址或者相对转移的地址,也必定要占用一个字节。
-
如果指令中,含有16位的立即数或目的地址,则要占用两个字节。
熟记特征,判断指令长度就很简单了。
-
A,Ri等寄存器,对指令字节长度无影响;
例如:
MOV A,Rn 指令字节数是 1(1+0+0)
MOV A @Ri 指令字节数是 1(1+0+0)
-
@Ri也没有影响,@后面无论跟啥都不影响。
例如:
MOVC A,@A+DPTR 指令字节数是 1
-
有几个地址,指令长度就在1的基础上加几
例如:
MOV A,direct 指令字节数是2 (1+0+1)
MOV direct2,direct1 指令字节数是3(1+1+1)
POP diret 指令字节数是2 (1+1)
-
有几个立即数,就在1的基础上加多少(#加一个数)
例如:
MOV direct,#data 指令字节数是3(1+1+1)
MOV @Ri,#data指令字节数是2 (1+0+1)
-
16位立即数或目的地址,要加2
例如:
MOV DPTR,#data16 指令字节数是3(1+0+2) 注:DPTR也是寄存器,不占指令字节
如果有总结不到位或者错误之处,一定及时改正。