2020-2021-1 202029325 《Linux内核原理与分析》第二周作业

一、
寻址方式和常用汇编指令
mov1 %eax, %edx:把寄存器%eax的内容放到%edx中
mov1 $0x123,%edx:就是吧这个十六进制的数值直接放到edx寄存器中。
mov1 0x123 %edx:就是把十六禁止的内存地址所指向的那块数据放到edx寄存器里
mov1 4(%edx),%edx:把这个ebx寄存器存储的数值加上4,然后强制类型转化为一个int类型的指针,在用*取出他的值,然后放到edx寄存器中,这称为变址寻址
二、本实验是在linux环境下编写了一个由三个函数组成的c语言小程序,在vim编辑的代码如下:(图中9325学号后四位)

因为在main函数中设置的是无返回值,所以./a,out并没有返回数值,通过>echo$?查看最后的返回值,并通过gcc -S -o main.s main.c -m64
查看main.s文件如下

上图中的汇编代码非常繁杂,所以需要对main.s简化一下,所有以“.”打头的字符串不会执行,所以都可以删除,通过g/\.s*/d删除这些字符串
在linux中运行的代码如下:

posted @ 2020-10-17 18:55  20209325葛耀东  阅读(112)  评论(0编辑  收藏  举报