2.13计算机工作过程

2.三个级别的语言
1)机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言
2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
3)高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。

机器语言是唯一可以控制cpu的语言,因为它的符号不利于人识别和书写,为了方便理解和记忆,将机器语言换一些通俗易懂的符号,这就变成了汇编语言。一般来说在在编译器中高级语言先转换为汇编在转换为机器语言,也有直接转换为机器语言的情况。

机器语言是计算机唯一可以直接执行的语言,编语言用助记符编写,以便记忆。而正则语言是编译原理中符合正则文法的语言。

解释程序的特点是翻译一句执行一句,边翻译边执行:由高级语言转化为汇编语言的过程称为编译,把汇编语言源程序翻译成机器语言程序的过程称为汇编

PC自动加1并指向下一条语句,初始时PC指向第一地址,然后PC把地址传递给MAR,

MAR记录的是存储体里的主存地址,MDR记录的是具体的指令,由MDR将存储体里存储的具体指令传递给IR,那么IR就得到了从存储体里得到具体指令的MDR所传递的指令,IR取得后给到CU,CU对指令的代码进行分析,IR再给MAR信息,MAR存地址;第五步是分析指令,是得到接下来要干啥,但是没说怎么干,CU分析出指令后再给IR信息,IR给MAR,给MDR,给ACC

整体就三步,即取指令,分析指令,然后执行指令;每次取完指令后PC自动+1,ACC存数,存上一次指令完后的数;接下来就是PC把地址信息给MAR,然后MAR把对应地址上的指令给MDR,然后MDR的具体指令给IR,这个指令包含两个码,一个是操作码,一个是地址码。IR进行两个操作,一个是给CU操作码,一个是给MAR地址码,给MAR地址码,MAR的地址码就是二进制大小,然后给到MDR,再给到MQ,

一开始写的程序都存储在存储体里,然后在执行的时候就按照取,分析,执行的顺序操作

取数的时候,MDR

上一条执行完后PC++,ACC是用来存每次操作完后的数据的。

主存地址的位置上是指令,指令包含两个东西,一个是操作码一个是地址码,IR将操作码给CU,将地址码给MAR;

先是PC每次在取完指令后++,并给到MAR,然后MAR将指令给MDR,MDR给IR,由此是取完了指令;然后IR是将操作码和地址码分别给CU以及MAR,CU分析操作码得到接下来要进行的操作,MAR得到操作所需要的数

MAR两次得到主存地址,第一次是得到指令,第二次是得到操作数,MDR主要就是起到一个依据主存地址得到具体指令,并把其进行传递的作用。MDR第一次得到是指令包含操作码以及地址码,传递给IR以进行分析,第二是得到具体的数据,传递给运算器里去进行运算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513951.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

滴滴基于 Clickhouse 构建新一代日志存储系统

ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日志检索等核心平…

js SheetJS 合并表格导出到同一个excel中

最近有个需求,我在一个页面显示了4个表格, 然后合并导出到excel文件中 四个表,四个sheet,一个excel文件 最后导出时这样: 实现: 1,页面有个导出的checkbox,勾选则导出,不勾选不处理 2,在一个函数中,集中处理四个表数据获取,并将结果返回出来 //获取数据后返回为…

RabbitMQ(SpringAMQP)

一.SpringAMQP Spring的官方基于RabbitMQ提供了一套消息收发的模板工具:SpringAMQP。并且基于SpringBoot对其实现了自动装配 SpringAMQP官方地址:SpringAMQP SpringAMQP提供的功能: 自动声明队列、交换机及其绑定关系 基于注解的监听器模式,异步接收…

《 前端 vs. 后端:挑战与机遇的对决》

前言 前端开发和后端开发是构建网站、应用程序和其他软件的两个主要方面。它们各自负责不同的任务和功能。 前端开发: 定义:前端开发是指构建用户直接与之交互的网站或应用程序的过程。前端开发主要关注于用户界面和用户体验。技术栈:前端开发通常涉及使用 HTML、CSS 和 Ja…

【Azure 架构师学习笔记】- Azure Service Endpoint

本文属于【Azure 架构师学习笔记】系列。 前言 在做Azure 架构时,经常会被问到Service Endpoint这个点,那么这篇文章来介绍一下Service Endpoint(SE)。 Azure Service Endpoint 首先它是一个专用通道,在Azure 资源之…

HTML入门:05HTML多媒体

HTML入门:05HTML多媒体 1 video标签1.1 控制按钮:controls1.2 宽度和高度:width和heightt1.3 预载:preload1.4 静音:muted1.5 自动播放:autoplay1.6 无限循环:loop1.7 poster 2 audio标签 在早期…

开源项目_BERT_意图分类与槽填充

项目地址:GitHub - taishan1994/pytorch_bert_intent_classification_and_slot_filling: 基于pytorch的中文意图识别和槽位填充 项目运行: 1、#按照readme要求创建环境 conda create pytorch transformers python3.7.02、提示缺少seqeval包 pip instal…

利用 Redis 和 Lua 实现高效的限流功能

简介 在现代系统中,限流是一种重要的机制,用于控制服务端的流量并保护系统免受恶意攻击或请求泛滥的影响。本文将介绍如何利用 Redis 和 Lua 结合实现高效的限流功能。 一、什么是限流 限流指的是对系统中的请求进行控制和调节,确保系统在…

1908_Arm Cortex-M3的实现

1908_Arm Cortex-M3的实现 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 这是第一次看一份这样的手册,之前的MCU编程基本上就是专注于软件接口方面。而OS等方面的一些功能基本上都是用了现成的解决方案,因此也就没有过多的关注…

hdu-2047(dp做法)

hdu-2047 阿牛的EOF牛肉串 其他博客递一维推做法比较难想(我不会 升到二维简单很多&#xff0c;dp[i][j]表示长度为i时&#xff0c;最后一个字母为j #include<bits/stdc.h>using namespace std; const int maxn 5e6 5; const double pi 3.1415927; const int mod 100…

阿里二面,redis宕机了,如何快速恢复数据

背景 有个同学阿里二面&#xff0c;面试官问&#xff1a;redis宕机了&#xff0c;如何恢复数据&#xff1f; 这位同学当时一脸懵&#xff0c;不知道如何回答。 分析分析这个问题&#xff0c;redis宕机&#xff0c;要想恢复数据&#xff0c;首先redis的数据有没有做持久化&…

C if 语句

一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 语法 C 语言中 if 语句的语法&#xff1a; if(boolean_expression) {/* 如果布尔表达式为真将执行的语句 */ }如果布尔表达式为 true&#xff0c;则 if 语句内的代码块将被执行。如果布尔表达式为 false&#xff0c;…