① 單片機指令句前的標號有何作用
是的
標號就是該行程序的首地址
往往有兩個用處
一是為了做跳轉,就是做分支結構程序時用到的,根據不同情況執行不同的程序
二是為了做輔助說明,表示該程序段的作用
② 單片機中指令先執行哪一個,後執行哪一個執行完的結果應該是哪條指令的結果
首先跳轉到復位向量,然後跳轉到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,於是程序接著向下執行.....