使用EdSim51仿真軟件練習10課:單片機數據傳送類指令。
首先匯編后沒有報告錯誤,如下圖所示
20240121223019_bPGYFWFSQ96.png (199.7 KB, 下載次數: 37)
下載附件
2024-1-21 22:37 上傳
然后執行下面這條指令:
將十進制數據 12,也就是十六進制的 0x0CH 送入到 RAM 中地址是 30H 的單元,結果如下圖所示
20240121223137_qoPJuJ7M0D4.png (197.32 KB, 下載次數: 35)
下載附件
2024-1-21 22:37 上傳
接著執行下面這條指令:
和第一條指令類似,將十進制數據 23,也就是十六進制的 0x17H 送入到 RAM 中地址是 31H 的單元,結果如下圖所示
20240121223200_pLPvWqbCJD0.png (197.29 KB, 下載次數: 34)
下載附件
2024-1-21 22:37 上傳
下一步執行下面這條指令:
完成第一次壓棧操作,先將堆棧指針 SP——0x07H 進行加一操作,得到 0x08H,然后將 RAM 中地址是 30H 的單元的內容——0x0CH 推入以 SP 此時值——0x08H 為地址的 RAM 單元,結果如下圖所示
20240121223258_bv1IjP7PAV1.png (197.52 KB, 下載次數: 41)
下載附件
2024-1-21 22:37 上傳
緊接著執行下面這條指令:
完成第二次壓棧操作,先將堆棧指針 SP——0x08H 進行加一操作,得到 0x09H,然后將 RAM 中地址是 31H 的單元的內容——0x17H 推入以 SP 此時值——0x09H 為地址的 RAM 單元,結果如下圖所示
20240121223325_Svr0i3XcWX8.png (197.68 KB, 下載次數: 37)
下載附件
2024-1-21 22:37 上傳
倒數第 2 條指令被執行:
開始進行出棧,先將以 SP 此時值——0x09H 為地址的 RAM 單元內容——0x17H 彈出到 RAM 中地址是 30H 的單元,然后堆棧指針 SP——0x09H 進行減一操作,得到 0x08H,結果如下圖所示
20240121223417_wER9BqeAG76.png (200.19 KB, 下載次數: 33)
下載附件
2024-1-21 22:37 上傳
最后一條指令被執行:
實現第二次出棧,先將以 SP 此時值——0x08H 為地址的 RAM 單元內容——0x0CH 彈出到 RAM 中地址是 31H 的單元,然后堆棧指針 SP——0x08H 進行減一操作,得到 0x07H,結果如下圖所示
20240121223514_3Xtk4wJIZ57.png (200.04 KB, 下載次數: 38)
下載附件
2024-1-21 22:37 上傳
從上圖中的“Data Memory”可以看到,最后 RAM 單元 30H 地址的內容是 0x17H——十進制的 23,RAM 單元 31H 地址的內容是 0x0CH——十進制的 12,也就是說執行完上面的 6 條指令,RAM中地址為 30H、31H 單元的內容進行了交換。 |