① 单片机指令句前的标号有何作用
是的
标号就是该行程序的首地址
往往有两个用处
一是为了做跳转,就是做分支结构程序时用到的,根据不同情况执行不同的程序
二是为了做辅助说明,表示该程序段的作用
② 单片机中指令先执行哪一个,后执行哪一个执行完的结果应该是哪条指令的结果
首先跳转到复位向量,然后跳转到main函数,依次执行,PC指示下一条指令地址,遇到跳转指令或调用指令依照目标地址跳转。
③ 单片机中,inc指令是在执行前加1还是执行后加1
具体执行方法如下
首先需要在编程区域输入指令的执行条件,在左母线右侧输入:LD X2,当X2接通时运行加1指令。
然后输入加1指令:INCP D0。其含义为当执行此指令时,D0的数据自动加1,INC与INCP的区别在于:INC是程序运行每个周期都加1,而INCP是脉冲指令型指令,只在第一个扫描周期执行加1.
编写好程序先对程序进行转换,然后点击模拟测试按钮将程序写入模拟PLC。
点击测试窗口的“菜单启动”然后选择“继电器内存监视”。
从监视窗口选择位软元件X和字软元件D。
通过模拟仿真可以看到:当X2每次接通时,目标操作数都会进行加1运算。
注意事项:
若不采用脉冲型,当X2接通时,D0会一直进行加1运算。
参考资料来源:吴鉴鹰吧
贡献文档:网络文库《吴鉴鹰单片机项目实战精讲》
参考实例:吴鉴鹰单片机开发板
④ MCS-51单片机在执行短调用指令(ACALL)时,在调用操作之前为什么PC要先加2
子程序返回时,返回的地址(PC值)是从堆栈里弹出的,就是说调用子程序之前要对返回地址压栈,
因为调用指令执行完,子程序返回就要执行它下一条指令,
所以,调用指令执行时,先把下一条指令地址放进PC(短调用指令2字节,PC+2,就是下一指令了),当转去子程序时,PC就被压栈了.返回时它就出栈放回PC,于是程序接着向下执行.....