1. 單片機裡面的pc值是什麼意思
pc總是指向下一條指令的首地址的。但是在返回的時候得看堆棧中的數了。上面程序執行完之後:
例如:
(A)=50H;
sp=50H(因為在程序中,sp減了兩次,後來又加了兩次,在程序最後ret有在返回的時候減了兩次,即地址出棧,故最終結果是50h。
(51h)=30h;
(52h)=50h;
因為ret指令返回時,出棧的結果是高地址=(52h)=50h;而低地址=(51h)=30h;故最終結果pc值是5030h;
(1)單片機52h是什麼意思擴展閱讀
單片機在電子技術中的開發,主要包括CPU開發、程序開發、 存儲器開發、計算機開發及C語言程序開發,同時得到開發能夠保證單片機在十分復雜的計算機與控制環境中可以正常有序的進行,這就需要相關人員採取一定的措施,下文是筆者的一些簡單介紹:
(1)CPU開發。開發單片機中的CPU匯流排寬度,能夠有效完善單片機信息處理功能緩慢的問題,提高信息處理效率與速度,開發改進中央處理器的實際結構,能夠做到同時運行2-3個CPU,從而大大提高單片機的整體性能。
(2)程序開發。嵌入式系統的合理應用得到了大力推廣,對程序進行開發時要求能夠自動執行各種指令,這樣可以快速准確地採集外部數據,提高單片機的應用效率。
(3)存儲器開發。單片機的發展應著眼於內存,加強對基於傳統內存讀寫功能的新內存的探索,使其既能實現靜態讀寫又能實現動態讀寫,從而顯著提高存儲性能。
(4)計算機開發。進一步優化和開發單機片應激即分析,並應用計算機系統,通過連接通信數據,實現數據傳遞。
(5)C語言程序開發。優化開發C語言能夠保證單片機在十分復雜的計算機與控制環境中,可以正常有序的進行,促使其實現廣泛全面的應用。
2. 單片機編程將累加器A中的二進制數變成BCD碼,並將百、十、個位數分別寫入內部RAM中的50H、51H、52H中。
這程序也寫的太復雜了!既然51單片機有div指令,並且只是把a中的數字轉變為bcd,那就用div直接運算:
mov
a,#0fdh
mov
b,#100
div
ab
mov
50h,a
mov
a,b
mob
b,#10
div
ab
mov
51h,a
mov
52h,b
計算完成,這樣50h就是百位數,51h是十位數,52h是個位數
3. 單片機程序語句解釋:下面每條語句是什麼意思啊,大概說說讓我可以理解這段程序。
已知程序執行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序執行後:
POP DPH ;DPH出棧,SP=SP-1
POP DPL ;DPL出棧,SP=SP-1
MOV DPTR,#4000H ;(DPTR)= 4000H
RL A ;(A)循環左移1位,(A)= 04H
MOV B,A ;(B)= 04H
MOVC A,@A+DPTR ;(A)= @04H+4000H=30H
PUSH Acc ;A入棧,SP=SP+1
MOV A,B ;(A)= 04H
INC A ;(A)= 05H
MOVC A,@A+DPTR ;(A)= @04H+4000H=50H
PUSH Acc ;A入棧,SP=SP+1
RET ;主程序返回
ORG 4000H ;定義地址開始處
DB 10H,80H,30H,50H,30H,50H;定義6位元組數據
請問:A=( 50H ),SP=( 52H ),(51H)=( 30H ),(52H)=( 50H ),PC=(5030H )。