本周的学习内容主要是庖丁解牛Linux的第一章,然后看完书后,又跟着云班课加深学习了一下第一章的内容。第一章主要讲述了linux里的汇编指令的一些指令,比如movl,pushl,popl等等,这些指令都是围绕数据结构中的栈做文章的。贯穿这一章的是esp、ebp,eip指针寄存器。简单来说,ebp就是指的栈底,esp就是指着栈顶。eip就是正在执行的指令所在的位置,然后不断重复的进行入栈出栈操作。
写了一个简单的C程序,如图所示,具体代码如下:

C语言代码:
//mian.c
int g(int x)
{
return x + 3;
}
int f(int x)
{
return g(x);
}
int main(void)
{
return f(8) + 1;
}
通过gcc -s -o main.s main.c -m32指令将其编译成汇编程序,打开该汇编文件并删除不重要的信息,如图所示,具体代码如下:

反编译后汇编代码
.file "main.c"
.text
.globl g
.type g, @function
g:
.LFB0:
.cfi_startproc
pushl %ebp

本文详细介绍了Linux内核第一章的学习内容,重点解析了汇编指令如movl, pushl, popl等在栈操作中的作用。通过分析一个简单的C程序及其编译后的汇编代码,阐述了esp、ebp、eip寄存器的工作原理,并通过画图辅助理解执行流程。总结强调了理解计算机基本原理和汇编语言的重要性,以及如何运用计算机思维进行编程。"
97101507,8419256,Nginx作为高性能HTTP和反向代理服务器详解,"['Web服务器', '反向代理', '负载均衡', 'HTTP', '高性能']
最低0.47元/天 解锁文章
1404

被折叠的 条评论
为什么被折叠?



