Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理

Linux内核设计第一周

——从汇编语言出发理解计算机工作原理

作者:宋宸宁(20135315)

一、实验过程

图1 编写songchenning5315.c文件

图2 将c文件汇编成32位机器语言

图3 将.s文件中的链接语句删除,获得最后的汇编代码

二、分析堆栈变化情况

三、总结

阐明对“计算机是如何工作的”的理解。

①计算机是依据冯诺依曼体存储结构,依据其核心思想——存储程序计算机工作模型,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作。 
②从硬件的角度看,是通过总线连接CPU和内存,利用CPU中的eip寄存器存储当前执行指令在内存中的地址,来实现上述过程。 
③从程序员的角度看,计算机通过内存保存指令和数据,通过CPU解释执行指令,程序员利用API应用程序编程接口来,实现编写代码并执行的过程。 
④通过使用接近人类语言的高级语言,经过汇编语言、机器语言的翻译,最终实现人与机器的结合,使计算机能够完美的工作。

参考资料

1、《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 
2、 实验楼64位Linux虚拟机环境https://www.shiyanlou.com/courses/running/555

时间: 2024-12-25 23:28:38

Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理的相关文章

Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

Linux内核设计(第一周)--从汇编语言出发理解计算机工作原理 计算机工作原理 汇编指令 C语言代码汇编分析 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 从2月22日起,本学期的linux课程开始了.通过这两天的学习,觉得孟宁老师讲的真不错,条理清晰,举例适当.本周从计算机工作原理出发,回顾了冯诺依曼计算机结构,也回顾了汇编寄存器.汇编指令.C语言程序的汇编分析技巧,很

Linux内核设计第一周学习总结 计算机如何工作

北京电子科技学院 20135310陈巧然 一.视频笔记 二.实验:汇编一个简单C程序,分析其汇编指令执行过程 利用实验楼实验环境 2.源代码main.c 3.生成的汇编代码main.s 三.汇编指令执行过程分析 四.总结理解 该部分内容在曾经的汇编基础课和信息安全系统设计基础课中反复学习过,是计算机工作原理的基础部分. 计算机可抽象理解为由CPU和内存两部分组成,内存中存有指令和数据,CPU解释执行指令.CPU中的IP寄存器指向内存中的某代码段(即指令),CPU执行完当前IP指向的指令后,IP寄

Linux内核分析第一周——计算机是如何工作的

Linux内核分析第一周——计算机是如何工作的 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 冯诺依曼体系结构结构,就是存储程序计算机. 1.数字计算机的数制采用二进制: 2.计算机通常是顺序执行一条一条的指令,如果有必要就通过寄存器跳转到特定的地址,再执行,然后通过一系列机制返回原有的地址,继续顺序执行. 实验部分:

LINUX内核分析第一周学习总结——计算机是如何工作的

LINUX内核分析第一周学习总结——计算机是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.汇编代码的工作过程 1.实验过程 int a(int x) { return x + 2; } int b(int x) { return a(x); } int main(void) { return b(5) + 1; } 汇编代码如下: 2.代码分析 二.计算机工作的

[Linux内核分析第一周课程] 由C语言程序的汇编表示观察CPU寄存器与内存的互动

孟宁<Linux内核分析>第一周实验 作者:Zou Le 原创作品转载请注明出处. 课程信息: <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ---------------------------实验正文--------------------------- 本实验在实验楼64位LIinux虚拟机下进行. C代码如下: int increment5(int x) { return x + 5; }

Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码

陈巧然 原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.使用实验楼的虚拟机, 观察只有一个死循环的mykernel与时钟中断的关系 步骤:cd LinuxKernel/linux-3.9.4 qemu -kernel arch/x86/boot/bzImage 执行效果如下图 Paste_Image.png 现在查看mymain.c: Paste_Image.png 再查看myin

Linux内核分析——第一周学习笔记

20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 第一节 存储程序计算机工作模型 1.冯诺依曼体系结构:即具有存储程序的计算机体系结构.目前大多数拥有计算和存储功能的设备(智能手机.平板.计算机等)其核心构造均为冯诺依曼体系结构 a.从硬件来看:CPU与内存通过主线连接,CPU上的IP(可能是16.32.64位)总指向内存的某一块区域:IP指向的CS(代码段)也在内存中:CPU总是执行IP指向的指令. b.从软件来看:API(应用程序编程接口,与编程人员)与ABI(程序与

Linux内核分析第一周-通过分析汇编代码理解计算机是如何工作的

首先,我们先写一个简单的C语言程序,如下: int g(int x) { return x +3; } int f(int x) { return g(x); } int main(void) { return f(8) + 1; } 然后我们把源程序编译成一个汇编语言,指令如下 gcc -S -o main.s main.c -m32 得到结果,删去符号项得到结果 首先,main函数为该程序的开始入口,所以从main函数开始分析: 在line 17 ~ line 18是进入main函数(ent

linux内核设计的艺术--系统启动第一步

计算机究竟是如何执行起来的呢,在我学习计算机的时候一直不是非常明确,可是近期借了本<linux内核设计的艺术>算是知道了计算机从按开机到启动操作系统之间究竟做了些什么. 这本书刚開始介绍的并非linux的启动,而是linux启动之前的一步,也就是在你按下了开机button之后进入系统引导之前计算机做的事情,这个时候做的事情是每台执行操作系统的计算机都须要做的.大致的步骤也差点儿相同,OK,进入正题. 事实上在当我们按了开机键的时候,硬件电路将CPU的CS设置成0XF000,IP设置成0XFFF