rCore-Tutorial-Book-v3
rCore-Tutorial-Book-v3 copied to clipboard
rCore-Tutorial-Book-v3/chapter1/4understand-prog
理解应用程序和执行环境 — rCore-Tutorial-Book-v3 0.1 文档
https://rcore-os.github.io/rCore-Tutorial-Book-v3/chapter1/4understand-prog.html
“函数调用与栈”小节的图中,“回复上下文”应改为“恢复上下文”。
“编译器 (Compiler) 将每个源文件从某门高级编程语言转化为汇编语言,注意此时源文件仍然是一个 ASCII 或其他编码的文本文件;“ 这里,“注意此时源文件”中的“源文件”应该是指编译后的目标文件吧?
汇编器 (Assembler) 将上一步的每个源文件中的文本格式的指令转化为机器码,得到一个二进制的 目标文件 (Object File); 这里的“源文件”含义有点模糊,应该是指编译结果。
“编译器 (Compiler) 将每个源文件从某门高级编程语言转化为汇编语言,注意此时源文件仍然是一个 ASCII 或其他编码的文本文件;“ 这里,“注意此时源文件”中的“源文件”应该是指编译后的目标文件吧?
是的,但相对于后面的汇编器来说,它是源文件,并且是文本文件,不是二进制文件
汇编器 (Assembler) 将上一步的每个源文件中的文本格式的指令转化为机器码,得到一个二进制的 目标文件 (Object File); 这里的“源文件”含义有点模糊,应该是指编译结果。
上一步产生的是汇编代码,对于汇编器来说,它是源文件
父亲栈帧的结束地址
fp
,是一个被调用者保存寄存器;
应该是起始地址