实验部分:

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

  

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

  

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

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

 

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

总结

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

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

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

  2.汇编语言基础

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

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

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

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

体会:

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

最新文章

  1. 再见,OI
  2. ASP.NET MVC 关闭 客户端 xss 检查
  3. [聚类算法] K-means 算法
  4. 来自 Google 的 R 语言编码风格指南
  5. VMware的使用
  6. 学号20145220 《Java程序设计》第5周学习总结
  7. C#程序集编译输出XML文档的作用
  8. Android消息推送完美解决方案全析
  9. C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
  10. 意犹未尽而来的第一篇Android 逆向
  11. Firefox 备份
  12. 6个常见的php安全攻击
  13. [LeetCode] 4. 寻找两个有序数组的中位数
  14. 图片编辑工具GIMP
  15. flutter插件汇总2
  16. KiB 、十进制单位转换 、二进制单位转换
  17. [Hive_11] Hive 的高级聚合函数
  18. Git更新本地仓库
  19. 2016年3月4日Android实习笔记
  20. 【转载】 从ACM会议看中国大陆计算机科学与国外的差距

热门文章

  1. Tomcat上进行项目部署与WAR包含义
  2. Struts文件下载(静态)
  3. NGINX优化参数
  4. 【react router路由】<Router> <Siwtch> <Route>标签
  5. Linux ls命令
  6. mysql 约束条件 auto_increment 自动增长 修改自增字段起始值
  7. python学习笔记(二)文件操作和集合
  8. C的指针疑惑:C和指针6(指针)
  9. HDU1087:Super Jumping! Jumping! Jumping!(简单dp)
  10. Creating an AVI in memory with C++