zoukankan      html  css  js  c++  java
  • 计算机是如何工作的

    符钰婧

     原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

     一.实验题目

         关于计算机是如何工作的这个问题,本文将通过一个反汇编C程序的实验来解释。

    二. 实验内容和截图

         在虚拟机环境下进行实验,新建main.c文件,将题目中的C程序复制到main.c文件中,,利用gcc命令编译成汇编代码

     

     三.下面分析汇编代码工作过程中堆栈的变化

    执行push指令,此时esp指向1,然后ebp的值被赋值给地址1所表示的值;

    执行move指令,此时ebp也指向了1

    执行sub指令,esp的值减4,相当于往下移了一位,此时esp指向2

    执行move指令,为立即数寻址,就是将数字6赋值给寄存器eax,再把eax的值赋给esp所指地址表示的值;

    执行call指令,esp4指向地址3eip指向下一条指令(26行处),然后将这个值赋给地址3表示的值,最后eip指向函数f

    首先寄存器eip指向程序的第一条指令(21行处),此时的栈为空栈。

    这一段代码结束之后,ebp指向1esp指向3

    四.总结

     就好比这幅图 cpu里存储,在内存里执行汇编指令

     

    计算机是如何工作的:把C语言变成机器语言,用汇编语言执行我们输入的指令。

  • 相关阅读:
    MFC中的菜单(Menu)
    MFC中获取系统无任何操作的时间
    MFC中使用快捷键Accelerator
    Git的安装和使用
    给pdf添加目录
    练习题2
    练习题1
    主键和外键
    数据库知识点
    多表查询
  • 原文地址:https://www.cnblogs.com/fuyujing/p/5210307.html
Copyright © 2011-2022 走看看