zoukankan      html  css  js  c++  java
  • 《程序是怎样跑起来的》第一章

           计算机的每一步动作的一组指令都是由程序进行的,指令和数据构成程序,在计算机的构成元件中,负责程序的解释和运行的就是CPU。

           CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,彼此由电流信号连通。寄存器用来暂存指令、数据等处理对象,根据种类的不同,一个CPU内部会有20~100个寄存器。控制器把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制计算机。运算器则运算从内存读入寄存器的数据。时钟则发出CPU开始计时的时钟信号。时钟可位于计算机的内部和外部,时钟信号的频率越高,CPU的运行速度越快。计算机的主存储器就是内存,简称主存,负责存储指令和数据,由可读写的元素构成,(字节:1字节=8位  带有地址编号)CPU可通过该地址读取主存中的指令和数据,也可以写入数据。注意:主存中存储的指令和数据会随着计算机的关机而自动清除。

           CPU是寄存器的集合体,程序是把寄存器作为对象来描述的。汇编语言采用助记符来编写程序,通常为指令功能的英语单词的简写。汇编语言基本上和机器语言(CPU能直接解释和执行的语言)是一一对应的。通常将汇编语言编写的程序转化成机器语言的过程称为汇编。反之为反汇编。机器语言级别的程序是通过寄存器来处理的,其他三种只需知道就行了。Eax和ebp是CPU内部寄存器的名称,内存的存储场所通过地址编号来区分,而寄存器的种类则通过名字来区分。使用高级语言编写的程序会在编译后转化成机器语言,再通过CPU内部的寄存器来处理。不同类型的CPU,内部寄存器的数量、种类以及寄存器存储的数值范围都是不同的,大概可以分为八大类。

           程序计数器决定着程序的流程。存储指令和数据的内存,是通过地址来划分的。

           程序的流程分为顺序执行、条件分支和循环三种。顺序执行是指按照地址内容的顺序执行指令。条件分支是根据条件执行任意地址的指令。循环是指重复执行同一地址的命令。条件分支和循环中使用的是跳转指令,会参照当前的运算结果来判断是否跳转。无论当前累加寄存器的运算结果是负数、零、还是正数,标志寄存器都会将其保存。CPU在进行运算时,标志寄存器的数值会根据运算结果自动设定,条件分支在跳转指令前进行比较运算。

          通过基址寄存器和变址寄存器可以对主存上特定的内存区域进行划分,从而实现类似于数组的操作。

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/1999dbl/p/10467388.html
Copyright © 2011-2022 走看看