作者newwords (heart shaped box)
看板LinuxDev
標題Fw: [問題] 這段os影片中37:00後講的loader聽不懂
時間Tue Oct 2 13:02:33 2018
※ [本文轉錄自 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://webptt.com/m.aspx?n=bbs/Linux/M.1536104297.A.B5B.html
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: newwords (220.136.107.171), 10/02/2018 13:02:33
1F:推 yvb: 聽了一下, 不知道你的問題點在哪. 10/17 01:04
2F:→ yvb: 是否考慮先條列出他的語句, 再逐項指出不懂或有疑問的部分? 10/17 01:06
3F:→ newwords: 37:43前後吧,loader把sp指到這個program的sp,而在sp之 10/18 13:33
4F:→ newwords: 後保證不用sp,聽不懂這段 10/18 13:33
5F:→ WPC001: 就你SP改掉了,指到接下來被載入程式要用的位址 10/18 23:20
6F:→ WPC001: 那你目前的loader當然不能再用stack了...否則就天下大亂了 10/18 23:21
7F:→ yvb: 可以思考一下 sp 和 program 的關係是什麼? 10/19 13:14
8F:→ yvb: 或者說, sp stack 在 program (process) 中被如何使用? 10/19 13:16
9F:→ newwords: 大概了解了,就是不能連續push兩次對嗎 10/19 20:58
11F:推 yvb: 你在樓上的這個 URL 是說明了 sp 及 stack 的用途, 10/20 22:12
12F:→ yvb: 但你說 "不能連續push兩次" 又是誤解了什麼? 10/20 22:13
13F:→ newwords: 還是請yvb解釋好了,實在是不懂,感謝 10/22 07:49
14F:推 yvb: 就以存放在stack的local variables來說好了. 在一個函式中, 10/23 19:01
15F:→ yvb: 上述變數就是對應成sp加上一個特定offset, 所以sp變更後, 10/23 19:01
16F:→ yvb: 存取這樣的變數就會存取到錯誤的位址了; 其它 用sp的方式, 10/23 19:02
17F:→ yvb: 也差不多是這種情況 (除了直接改sp是例外). 10/23 19:02