实验部分:
- 我将源代码做了修改,将其中一个数字修改为我学号27
2.在实验楼环境下将其保存为text.c并将其编译,得到text.s
3.将.开头的多余的语句删去了之后,我得到了32位环境的汇编代码
我编的题目是:假设堆栈栈底初始值为100,写出eip,eax在整个过程中的变化。
我将其分析过程和答案写在以下图上:
总结
- 冯诺依曼结构:将程序指令存储器和数据存储器合并在一起的存储器结构。
计算机是怎么工作的?存储器负责存储指令,cpu负责解释指令。它们通过总线连接。
Cpu是如何解释指令:ABI:程序和 cpu接口界面,接下来主要学习汇编语言。
2.汇编语言基础
为什么学习:汇编语言是最接近机器语言的编程语言,能帮助我理解cpu是如何解释指令的。
- 寄存器:通用寄存器(编程中可以直接使用的寄存器)。段寄存器
- 常见指令:
- movl七种寻址方式
- pop,push,ret,call
- 堆栈
3.堆栈详细变化过程举例。
由于作业中已经详细体现了次知识点,我就不再累赘描述。
体会:
开学第一周很温柔,能适应,在本次学习过程中,我温习了大二上学习的汇编的7种寻址方式,压栈出栈,还温习上上学期学习的linux基本的指令,以及vim编辑器和gcc编译器的使用。让我体会到以前学习的知识的实用性,也对它们的了解拓宽了广度。