单片机,程序存储器中的字节,如何区分是指令还是数据?

单片机是靠什么对自己程序存储器里的字节进行区别的》?

指令和数据主要是单片机按照其约定的命令书写格式来确定的。
比如说
MOV
R7,
#74H
MOV
A,
#00H
编译成HEX文件就是7F
74
74
00
当计算机看到7F时,它就自己知道是MOV
R7,所以后面的74就是你所说的数据,既然74在这里是数据,那么它后面的74肯定就是指令的,因为你在写MOV
R7,
#74H指令后不可能再加个数据吧。
那你又要问了,单片机为什么不把74
74
理解为MOV
A,
#74H?这是因为在单片机里面,它解析每一个16进制数据时,是按其物理顺序一个接一个顺序执行的,如果你把74
74
理解为MOV
A,
#74H,那么,它前面和后面都会错多出一个未知数据,肯定是不允许的。单片机执行程序时,从第一条开始一条一条分析,肯定不会多或少,如果多了或少了,那就是程序出错,也就是我们常说的程序飞了!
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜