作者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/cn.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