计算机底层知识-狂神

1、汇编语言

1.1、汇编语言的作用

计算机只能识别二进制的指令,但是二进制的指令过于繁杂以及难以学习,所以就将计算机能够执行的二进制命令转换成人能够识别的命令,比如0111 2100命令代表着计算机执行加法的命令的话,那么就用助记符INC,DEC,MUL,DIV代表着这个指令,而这些助记符的集合便是汇编语言。汇编一般用于底层的编写,比如单片机。

1.2、编汇编语言的编译器

作用:人能够通过简单的指令写出汇编语言,但是计算机是无法识别这些指令的,这时候,编译器就出来,他能够将汇编指令编译成计算机能够识别的二进制命令,比如当我们执行加法指令的时候INC,那么计算机底层将其编译成0111 2100,这时候,计算机就能够识别并执行命令。

2 C语言

介绍:C语言是对于汇编语言的进一步封装,将难以记忆的汇编指令封装成普通人能够识别的符号,比如汇编指令INC相当于C语言中的“+”符号,仅仅通过1+2便可以让计算机执行

3 C语言与汇编语言的关系

第一、汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和CPU里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言;而C语言是高级语言,可以实现跨平台。编写程序无需指定CPU的指令执行情况,一段程序可以在不同体系结构的计算机上使用。

第二、C语言是一种比较高级的语言,作者可以直接命令计算机在不考虑硬件的情况下实现这种控制效果。汇编语言是语言对硬件的直接控制,硬件间接实现了一定的控制效果。换句话说,汇编语言更关注描述过程,而高级语言(比如C)更侧重于描述结果。

1 为什么要给数据增加数据宽度?

bit-1位、BYTE-8位,Word-16位,DWORD-32位,数学上的数字,是没有大小限制的,可以无限大。但是在计算机中,由于受到硬件的制约,数据是有长度限制的(我们称为数据宽度),并根据每种数据的类型分配不同的宽度,超过最多宽度的数据会被丢掉。某种意义上也是为了节省内存。

2 计算机是如何进行位运算的加减乘除的?

加法的运算步骤:
由于计算机只能进行与或非等三种运算的 。
第一步:获得式子的二进制异或结果a
第二步:获得式子的二进制与结果,并将结果向左移一位b(如果产生进位进行继续执行第三步,第四步直至a1、b1的与结果为0)
第三步:将得到的结果a、b进行异或得到结果a1
第四步:将得到的结果a、b进行与运算得到结果b1;
不断重复异或和与运算

3 CPU、内存、寄存器之间的关系

3.1 CPU

相当于计算机的大脑,它是解释和运行程序的。CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。

3.2 内存

主存通过控制芯片等与CPU相连,主要负责存储指令和数据。CPU可以通过地址读取主存中的指令和数据,当然也可以写入数据。但是,主存中存储的指令和数据会随着计算机的关机而自动清除。

3.3 寄存器

寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。

3.4关系

数据从内存里拿出来先放到寄存器,然后CPU在从寄存器里读取数据来处理,处理完成后同样把数据通过寄存器存放到内存中,CPU不直接和内存大交到。

3.4.1 为什么要通过寄存器读取数据?

因为从寄存器中读取数据比较很快,寄存器其实就是一块一块的存储空间,只不过其存储速度要比内存要快得多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值