2018-2019-1 20189219《Linux内核原理与分析》第二周作业
一、Linux内核分析
通过学习蓝墨云班课上的视频对汇编有了初步的了解
- 通用寄存器
EAX:累加器
EBX:基地址寄存器
ECX:计数寄存器
EDX:数据寄存器
EBP:堆栈基址针
ESI、EDI:变址寄存器
ESP:堆栈顶指针 - 段寄存器
CS:代码段寄存器。
DS:数据段寄存器。
ES:附加段寄存器。
SS:堆栈段寄存器。
FS:附加段寄存器。
GS:附加段寄存器。
mov指令及寻址方式
其中l指32位,b指8位,w指16位,q指64位 - 寄存器寻址:
movl %eax,%edx
相当于edx=eax - 立即寻址:
movl $0x123,%edx
相当于 edx=0x123 - 直接寻址:movl 0x123,%edx
相当于edx=*(int32_t)0x123 - 间接寻址:movl (%ebx),%edx
相当于edx=(int32_t)ebx - 变址寻址:movl 4(%ebx),%edx
相当于edx=(int32_t)(ebx+4) ,4就是寄存器ebx存的值加4
二、反汇编一个程序
- 操作过程如下:
- 汇编后的结果如下
- 下边开始分析如图:
- 从本次课程学习中我掌握了汇编语言的含义,对linux内核有了更加深入的理解。