微控制器程式,已知程式執行前有A 02H,SP 52H,(51H)FFH,(52H)FFH

2021-09-13 18:13:38 字數 658 閱讀 6083

1樓:做而論道

有錯:push a,

應寫:push acc。

程式中,有兩條查表指令:movc a, @a + dptr。

當 a = 0 時,將從 4000h 處,讀出 10h、80h;

當 a = 1 時,將從 4000h 處,讀出 30h、50h;

當 a = 2 時,將從 4000h 處,讀出 30h、50h。

本題目,就是 a=2。

讀出來了 30h、50h,先後壓棧,再執行 ret。

ret 指令,就是把堆疊中的兩個位元組,送到 pc。

那麼,pc=5030h,就是這麼來的。

2樓:零_度水

子程式返回指令

ret執行本指令時,(sp)→pch,然後(sp)-1→sp;

(sp)→pcl,然後(sp)-1→sp。

功能就是從堆疊中退出pc的高低8位位元組。

ret開始前sp=52h,(52h)=#50h,(51h)=#30h。

3樓:匿名使用者

pc的值由程式的起始位址而確定,你的這個程式木有定義起始位址,等於5030h,無依據。

在第一條指令 「pop dph」 前應該有個org 5000h的指令,估計是忘了寫了。

微控制器程式注釋,微控制器程式注釋(大致注釋)

嘿嘿 還是俺來幫你回答吧 1 這是乙個一位的7段數碼管顯示控制程式,通過p3口連線了乙個7段數碼管 靜態顯示,共陽極 2 該程式就是利用這個一位的7段數碼管分時迴圈顯示0 9 a f共16個十六進製制數碼。3 在程式儲存器存放的 tab 是共陽極顯示編碼 應該是0 9 a f共16個顯示編碼 可惜少...

微控制器程式,微控制器的應用

寫錯了吧,0x10和0x01能一樣嗎?if adc contr 0x10 測試其第5位是否是1 相當於 if adc contr 0x10 0 while adc contr 0x10 測試其第5位 d4 是否是0 乙個是測試 1 乙個是測試 0x10 能一樣麼?微控制器的應用 微控制器的應用領域 ...

微控制器C語言程式

define uint unsigned int就是用unit替換unsigned int,unsigned int是c語言關鍵字,unit比較簡單 void delayms uint x 定義乙個函式,無返回值,引數是個 無符號整形的變數叫 x uchar 上面不是定義了unsigned char...