看板 LinuxDev 關於我們 聯絡資訊
※ [本文轉錄自 Linux 看板 #1RZnTfjR ] 作者: loopfor (ken) 看板: Linux 標題: [問題] 這段os影片中37:00後講的loader聽不懂 時間: Wed Sep 5 07:38:14 2018 https://youtu.be/VXwFoa2QhaI
stack pointer 與loader之間關係 怎麼運作 在37:00開始三五分鐘那段 講聽不懂了 有人可解釋一下嗎 謝謝 ----- Sent from JPTT on my Asus ASUS_Z012DA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.193.233 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1536104297.A.B5B.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: newwords (220.136.107.171), 10/02/2018 13:02:33
yvb: 聽了一下, 不知道你的問題點在哪. 10/17 01:04
yvb: 是否考慮先條列出他的語句, 再逐項指出不懂或有疑問的部分? 10/17 01:06
newwords: 37:43前後吧,loader把sp指到這個program的sp,而在sp之 10/18 13:33
newwords: 後保證不用sp,聽不懂這段 10/18 13:33
WPC001: 就你SP改掉了,指到接下來被載入程式要用的位址 10/18 23:20
WPC001: 那你目前的loader當然不能再用stack了...否則就天下大亂了 10/18 23:21
yvb: 可以思考一下 sp 和 program 的關係是什麼? 10/19 13:14
yvb: 或者說, sp stack 在 program (process) 中被如何使用? 10/19 13:16
newwords: 大概了解了,就是不能連續push兩次對嗎 10/19 20:58
newwords: https://bit.ly/2yP9ZzB 10/19 21:04
yvb: 你在樓上的這個 URL 是說明了 sp 及 stack 的用途, 10/20 22:12
yvb: 但你說 "不能連續push兩次" 又是誤解了什麼? 10/20 22:13
newwords: 還是請yvb解釋好了,實在是不懂,感謝 10/22 07:49
yvb: 就以存放在stack的local variables來說好了. 在一個函式中, 10/23 19:01
yvb: 上述變數就是對應成sp加上一個特定offset, 所以sp變更後, 10/23 19:01
yvb: 存取這樣的變數就會存取到錯誤的位址了; 其它 用sp的方式, 10/23 19:02
yvb: 也差不多是這種情況 (除了直接改sp是例外). 10/23 19:02