实验部分:

  1. 我将源代码做了修改,将其中一个数字修改为我学号27

  linux安全第一周总结——20135227黄晓妍-LMLPHP

  2.在实验楼环境下将其保存为text.c并将其编译,得到text.s

  linux安全第一周总结——20135227黄晓妍-LMLPHP

  3.将.开头的多余的语句删去了之后,我得到了32位环境的汇编代码

linux安全第一周总结——20135227黄晓妍-LMLPHP

我编的题目是:假设堆栈栈底初始值为100,写出eip,eax在整个过程中的变化。

 

我将其分析过程和答案写在以下图上:

linux安全第一周总结——20135227黄晓妍-LMLPHP

总结

  1. 冯诺依曼结构:将程序指令存储器和数据存储器合并在一起的存储器结构。

计算机是怎么工作的?存储器负责存储指令,cpu负责解释指令。它们通过总线连接。

Cpu是如何解释指令:ABI:程序和 cpu接口界面,接下来主要学习汇编语言。

  2.汇编语言基础

为什么学习:汇编语言是最接近机器语言的编程语言,能帮助我理解cpu是如何解释指令的。

  1. 寄存器:通用寄存器(编程中可以直接使用的寄存器)。段寄存器
  2. 常见指令:
    1. movl七种寻址方式
    2. pop,push,ret,call
    3. 堆栈

  3.堆栈详细变化过程举例

由于作业中已经详细体现了次知识点,我就不再累赘描述。

体会:

开学第一周很温柔,能适应,在本次学习过程中,我温习了大二上学习的汇编的7种寻址方式,压栈出栈,还温习上上学期学习的linux基本的指令,以及vim编辑器和gcc编译器的使用。让我体会到以前学习的知识的实用性,也对它们的了解拓宽了广度。

05-11 11:36