看板 [ ASM ]
討論串[問題] 副程式呼叫問題
共 4 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓0(0推 0噓 5→)留言5則,0人參與, 最新作者kissy (吻藍)時間17年前 (2007/08/18 01:37), 編輯資訊
1
0
0
內容預覽:
如題。. 一般來說,呼叫副程式後,還可以在呼叫的副程式中再呼叫另外的副程式嗎?. 如果可以,那最多可以呼叫幾層?(以MCU來說). 呼叫太多層的話,是否會造成PC值存取造成錯誤?. 導致明明程式有在跑,卻無法顯現該有的狀況...?. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者ruemann (此人掛網中……)時間17年前 (2007/08/18 02:57), 編輯資訊
1
0
0
內容預覽:
可以. 你要了解的是該MCU允許多少層的stack和呼叫的概念. 眾所皆知,呼叫有兩個動作,在call時會先把之後要執行的位置存起來(即下一個指令),然後在return時把該位置取出並跳回。. 儲存執行位置的地方稱為stack(堆疊),其儲存的方式為「先進後出」,後面呼叫的. 位置(通常叫PC值)會
(還有622個字)

推噓1(1推 0噓 1→)留言2則,0人參與, 最新作者softcloud (老哥交車了 Q_Q:)時間17年前 (2007/08/18 09:45), 編輯資訊
0
0
0
內容預覽:
我記得在8086上 呼叫副程式做堆疊前 會先指到下一行 ,. 所以應該是. 堆疊:. s0+n (高位址). s1+n. s2+n (低位址). 對嗎? 還是說在單晶片上會有差異?. 有錯請指正 3q. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 220.139.7.214

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者ggg12345 (ggg)時間17年前 (2007/08/19 03:21), 編輯資訊
0
0
0
內容預覽:
s0: call s1. p0: .... .... s1: .... call s2. p1: .... .... return. s2: ... p2 ex 0x64. call s3 p1 <-- ex 0x62. p2: ... <--此時stack的狀態為: p0 <-- 較低位址,ex
首頁
上一頁
1
下一頁
尾頁