《编码——隐匿在计算机软硬件背后的语言》精炼——第17章收尾

news/2024/5/19 1:57:20 标签: 硬件

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼

文章目录

数字计算机

数字计算机分为硬件和软件两部分,硬件是组成计算机的设备,软件是输入计算机的指令和数值。之所以将它们区分,是因为相对于硬件而言,软件更加容易修改。

硬件

硬件分为处理器,存储器,IO设备几个部分。对于我们在上篇文章中设计的计算机而言,存储器就是RAM阵列,存储代码和数值;输入设备是各种开关,输出设备是灯泡。除此之外的所有设备统称为处理器。
处理器中,8位反相器和8位加法器组成了ALU(算术逻辑单元),ALU负责执行实际的计算过程。

软件

软件分为代码和数据。对于每一条指令,我们有特定的助记符。下面是在我们构造的计算机中指令的助记符:
在这里插入图片描述
正如我们在构造的计算机中做的那样,我们为每个指令后加一个或两个它所需要的操作数:
在这里插入图片描述
在这里插入图片描述
当有两个操作数时,第一个参数是目的操作数,第二个参数是源操作数。这两个指令的意思是将第二个操作数地址中的值作用于第一个操作数地址中。
在这里插入图片描述
注意,这个指令的操作数没有用方框,代表不是用这个数当做地址从RAM中取值,而是直接用这个数作用于处理器中的硬件。例如,在上面的Jump指令中,就用这个数直接作用于计数器来实现地址跳转。我们也可以在指令前面加上这条指令第一个字节实际的地址:
在这里插入图片描述
但指令地址会导致编写程序时比较麻烦,很多人更愿意使用更加抽象的指向指令的标识,而将地址分配交给计算机自动完成。使用标识后,就可以用标识来代替实际的地址了:
在这里插入图片描述
在这张图中,下面是NUM1,NUM2等实际指代的地址,上面则是一系列指令。
到这里,我们就构造出了一种计算机程序设计语言,称为汇编语言。任何高级语言在翻译成机器语言时,都要翻译成汇编语言。
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!


http://www.niftyadmin.cn/n/339227.html

相关文章

Token 常用的加解密算法

常用的 Token 加密算法包括对称加密算法和非对称加密算法。对称加密算法使用相同的密钥来进行加密和解密,加密速度快,但是密钥传输和管理较为复杂。非对称加密算法使用一对公钥和私钥来进行加密和解密,加密速度慢,但是密钥传输和管…

Mybatis操作数据库执行流程的先后顺序是怎样的?

MyBatis是一个支持普通SQL查询、存储及高级映射的持久层框架,它几乎消除了JDBC的冗余代码。使Java开发人员可以使用面向对象的编程思想来操作数据库。对于MyBatis的工作原理和操作流程的理解,我们先来看下面的工作流程图。 MaBatis的工作流程 在上图中…

比较难掌握的几道数据库面试题及答案

1.行级锁定的缺点: 比页级或表级锁定占用更多的内存。当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。 用高…

Ant Desgin Pro v6 正式版本企业级从零开始实现动态菜单与权限视频教程(28 个视频)

Ant Desgin Pro v6 正式版本企业级从零开始实现动态菜单与权限视频教程(28 个视频) 欢迎加入我们的Ant Design Pro v6视频教程!如果您正在寻找一门教您如何从零开始构建企业级动态菜单和权限管理的课程,那么这个视频就是您需要的…

创建python虚拟环境的两种方法

创建python虚拟环境的两种方法 一、anaconda环境下1、检查是否安装了anaconda2、创建虚拟环境3、激活虚拟环境4、其他命令 二、python纯净环境下1. 安装virtualenv2. 创建虚拟环境3. 激活虚拟环境 一、anaconda环境下 1、检查是否安装了anaconda 只有在anaconda环境下才能创建…

ATTCK v13版本战术介绍——防御规避(六)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术理论知识及实战研究、部分防御规避战术,本期我们为大家介绍ATT&CK 14项战术中防御规避战术第31-36种子技术,后续会介绍防御规避其他子技术&#xf…

java中db2临时表的运用

java中db2临时表的运用 创建DB2临时表命令:Declare Global Temporary Table(如下), 并且需要创建在用户临时表空间上; declare global temporary table TMP( aaaa varchar(20) not null, bbbb bigint not null, ccc…

多线程-程序、进程、线程与并行、并发的概念

多线程 本章要学习的内容: 专题1:相关概念的理解专题2:多线程创建方式一:继承Thread类专题3:多线程创建方式二:实现Runnable接口专题4:Thread类的常用方法专题5:多线程的优点、使用…