程序在计算机中是如何运行起来的
前言
前言:CPU和内存
文章目录
- 前言
- 一、什么是软件
- 二、CPU
- 1、简介
- 2、寄存器
- 3、运算器
- 1)算术逻辑单元(ALU)
- 2)累加寄存器(AC)
- 3)数据缓冲寄存器(DR)
- 4)状态条件寄存器(PSW)
- 4、控制器
- 1)作用
- 2)指令寄存器(IR)
- 3)程序计数器(PC)
- 4)地址寄存器(AR)
- 5)指令译码器
- 三、内存
- 1、简介
- 2、CPU 和内存的交互
一、什么是软件
软件就是各种数据的集合。例如,记事本、qq、微信都是软件。
二、CPU
1、简介
CPU
分为32
位和64
位,负责解释和运行,最终转换成机器语言,CPU
是寄存器的结合体。
CPU
能干的事:
1、从内存中读取数据,然后放到自己的寄存器中。
2、把寄存器中的数据,写入到内存。
3、进行数学运算(加减乘除)和逻辑运算(AND,OR)。
4、依据相应的条件进行跳转,执行其它指令(一条指令跳转到另一条指令)。
对于CPU
,必须将数据读取到寄存器中才能做相应的运算。
2、寄存器
寄存器用来存储数据,是一个存储部件,容量有限。
3、运算器
负责运算从内存中读取到的寄存器中的数据,可以看作是一个数据加工厂,对寄存器中的数据做运算(算术和逻辑运算),运算器由下面几部分组成。
运算器是计算的核心,用来做加减乘除运算,运算器操作的是寄存器中的数据,无法直接操作内存中的收据。
1)算术逻辑单元(ALU)
ALU
是运算器中重要组成部分,主要负责数据的处理,从而实现对数据的算术和逻辑运算。
2)累加寄存器(AC)
AC
通常叫做累加器,是一个通用寄存器,ALU
运算之后的结果是保存到AC
当中。
3)数据缓冲寄存器(DR)
存放的数据主要存从内存中读取过来的,会暂时存放在DR
中。
4)状态条件寄存器(PSW)
保存某一类数据,保存的主要是由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,一般分为状态标志和控制标志,存放的就是状态标志和控制标志。
4、控制器
1)作用
用来控制整个CPU
的工作。
2)指令寄存器(IR)
CPU
执行一个指令,先把指令从内存上读取,放到数据缓冲寄存器中,再从数据缓冲寄存器放到IR
。
3)程序计数器(PC)
保存下一条要执行的指令,以便于回头来做的时候从哪里开始(类比写文档的时候保存一下,然后下次打开继续从上次保存到的地方继续写)。
4)地址寄存器(AR)
保存CPU访问内存上的那一块内存的内存地址。因为 CPU
和内存的速度是相差较大,CPU
要保存那块正在访问的那块内存地址,直到内存的读写操作完成。
5)指令译码器
根据 IR
中的指令生成很多微操作指令。对指令进行分析解读,分析指令要做什么。
三、内存
1、简介
内存条:内部存储器,主要就是用来存放数据。内存就好比一个个小格子,每个小格子都有自己的编号(内存地址)。
计算机只认识0
和1
,所以存放在内存中的数据都是二进制形式。
2、CPU 和内存的交互
我们写的程序是放在硬盘中,需要运行时,会被加载进内存,从硬盘读取到内存,代码就变成了二进制文件,内存中的数据是从硬盘来的。
程序本身的数据是放在硬盘当中。程序是需要被加载进内存中才能被执行,CPU
被设计成只能从内存中读取数据,处理完数据将结果再次写回内存中,然后可以持久化的保存到硬盘中。
CPU
中的寄存器的数据从内存装载进来,然后CPU
根据相应的指令操作寄存器中的数据。
例如,双击打开记事本,此时记事本程序加载到内存中。此时在记事本当中写字,是在内存中进行操作(未保存),断电后不保存。保存后CPU
从中读取数据、运算等,将数据 返回给内存然后保存到硬盘当中进行持久化。
程序在计算机中是如何运行起来的相关推荐
- 程序在计算机中是如何运行的?搞懂内存和CPU(*)
1.程序在计算机中是如何运行的? 运算器 控制器 存储器 输入设备 输出设备 在计算机中,保存信息主要靠存储器,而存储器又分为内部存储器和外部存储器,内部存储器就是内存,外部存储器主要就是磁盘,磁盘又 ...
- Linux内核分析(一)通过汇编代码,理解程序在计算机中是如何运行的
作者:于波 声明:原创作品转载请注明出处 来源:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 首 ...
- 一个程序在计算机中是如何运行的
一个程序在计算机中是如何运行的 首先看一段代码: public class demo {public static void main(String[] args) {System.out.print ...
- 96KB存储器的怎么算地址范围_每天都在敲代码,但是一个程序在计算机中是怎么运行的?...
强烈声明:本文很干,请自备茶水! 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { ...
- 魔兽3无法启动此程序因为计算机中丢失,win10运行war3出错无法启动怎么办_win10系统war3不能启动如何解决...
war3魔兽世界是一款备受玩家们喜爱的游戏之一,但是近日有win10系统用户要在电脑中运行war3的时候,却出错了,无法启动该游戏,要怎么解决这样的问题呢,针对win10系统war3不能启动这个问题, ...
- 无法启动此程序因为计算机中丢失msvcr110,无法启动此程序因为计算机中丢失msvcr110,教您无法运行程序提示计算机中丢失...
用户在一次运行某程序时,运到"无法启动此程序,因为计算机中丢失msvcr.dll.尝试重新安装该程序以解决此问题."的提示,当时很无语,因为系统是刚刚安装好的,怎么处理呢?下面,小 ...
- windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法
如果在windows中运行qt5构建的程序提示:无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法如下 1.用release构建项目 2.把缺少的dll文件,从C:\Qt\Qt5.0. ...
- 无法启动此程序因为计算机丢失msvcr110.dll,Win7运行程序提示计算机中丢失msvcr110.dll如何解决...
很多用户在win7系统中运行程序的时候,总是会碰到各种各样的问题,有win7系统用户反映说在运行某些程序的时候,系统提示"系统错误,无法启动此程序,因为计算机中丢失msvcr110.dll, ...
- win10计算机丢失msvcr,win10系统运行程序提示计算机中丢失msvcr110.dll的教程
有关win10系统运行程序提示计算机中丢失msvcr110.dll的操作方法想必大家有所耳闻.但是能够对win10系统运行程序提示计算机中丢失msvcr110.dll进行实际操作的人却不多.其实解决w ...
最新文章
- 在Ubuntu 16.04.1 LTS上安装ATS 6.2.1 LTS实录
- android 定制ui,AndroidSDK-UI定制
- 完全禁用Microsoft Compatibility Telemetry
- 招商银行信用卡中心华泰证券暑期实习软开笔试小结
- 破解YouTube、Facebook推荐系统背后的那些算法
- 漫步凸分析六——凸集的相对内点
- python删除数据库_用Python删除Cosmos数据库文档
- 测试hudi-0.7.0对接spark structure streaming
- java中setStroke_Java调用setStroke()方法设置笔画属性的语法 原创
- ios应用提交审核出现的问题总结
- 解决bootstrap-table表头filter-control select控件被遮挡显示不全的问题
- java 线程池 hash_java线程池实例 - Hashsound的个人空间 - OSCHINA - 中文开源技术交流社区...
- 感知机算法—推导收敛次数的上界
- VAssistX + VS2017 常用快捷键
- UE4运行时交互工具框架
- 免费的文字转语音工具
- 10个典型的大数据案例
- java打印表格_如何在java中使用printf()打印出表格?
- 快速复制文件地址——无任何安装
- 谷歌html弹出ie页面,如何从谷歌跳转IE,打开指定的网址
热门文章
- 数据库系统是什么?它由哪几部分组成?
- 11、struct 结构
- vue防抖注册全局_vue防抖节流函数---组件封装,防止按钮多次点击
- aspen模拟蒸发器_用aspen计算多效蒸发器:高浓盐废水处理蒸发工艺简介
- 【Dest0g3 520迎新赛】密码学部分Wp及LCG(线性同余生成器)攻击方法
- 吉首大学新星杯——小阳数数
- 由浅入深的前端面试题 和矫情的“浪漫主义”诗句
- hdu 4549 M斐波那契数列(矩阵乘法+降幂公式)
- xyz文件怎么生成三维模型_知道xy z坐标怎么在matlab中生成三维图??
- 自助游最佳时间去最佳地方