当前位置: 首页 > news >正文

认识汇编:解码计算机思维的底层语言(第一章)

1.机器语言

1.1 定义

机器语言是机器指令的集和;

其实就是一台机器可以正确执行的命令(eg:01001001110);

机器码的顺序,从左到右,从高位到低位;

2、汇编语言

2.1 前言

汇编语言的主体就是汇编指令;

汇编语言与机器语言的区别:

eg:

机器指令:1000100111011000

操作:寄存器BX的内容送到AX中

汇编指令:MOV AX,BX

便于人们记忆与开发,汇编指令最终也会通过编译器解析成机器码,所以说相对越高级的语言执行效率越低;

eg:

Java语言 -> 编译器 -> 汇编语言 -> 编译器 -> 机器码

2.2. 汇编语言的组成

汇编指令+伪指令、其他符合(由编译器执行和识别)

核心是汇编指令,它决定了汇编语言的特性;

2.3 CPU

计算机的核心组件(计算机心脏),控制整个计算机的运作和运行计算,要想让CPU工作,就必须向他提供指令和数据;

2.4 存储器

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号;

2.4.2 作用

用来存放指令和数据(说明:内存只是其中一个存储器),提供给CPU运作;

CPU离开了内存,性能再好,也是无法工作;

2.5 磁盘

磁盘不同于内容,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用;

虚拟内存:其实就是在磁盘创建了一块空间用来存储数据,CPU调用内存,当内存不够时,内存先从磁盘把虚拟内存加载到内存中,在提供给CPU使用;

2.6 单位换算

1B = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

2.7 CPU对存储器的读写

CPU进行数据读写,必须和芯片进行三类信息的交互:

地址信息、控制信息、数据信息

2.8 存储单元

1、每个存储单元都是从0开始顺序编号;

2、存储器的容量是以字节为单位,也就是说,一个存储单位的大小是一个Byte;

3、磁盘的容量单位和内存一样;

4、一个存储单元有一个存储地址;

2.9 地址总线

1、CPU通过地址总线来指定内存单元;

2、CPU通过地址总线指定存储器单元,也就是说地址总线上可以传输多少个不同的信息,CPU就可以对多少个存储单元进行寻址;

3、一个CPU有N根地址线,则这个CPU的地址总线宽度为N,那么这样的CPU最多可以寻找2的N次方个存储单元,那么它的寻址能力也就是2的N次方(单位:个);

为什么是2的N次方?

因为一个导线传送的状态只有两种,高电平或低电平,所以最多可以传输2的N次方个数据;

4、如果你想让使用的软件达到64位的寻址能力,除非CPU支持64位,以及操作系统也支持64位;

5、地址总线的宽度决定了CPU的寻址能力;

6、推导公式:

设 传输次数为 x次,传输大小为 yByte,宽度为 N根,则公式:x=y/2^N

7、计算时,寻址能力基本上都是以个为单位;

2.10 数据总线

1、CPU与其他芯片之间的数据传输是通过数据总线进行的;

2、数据总线的宽度,决定了CPU和外界的数据传输的速度;

3、计算时,传输能力基本上都是以存储单位为单位(B);

2.11 控制总线

1、CPU对芯片的控制是通过控制总线进行的,这里的控制总线只是总称,控制总线是一些不同控制线的集合;

2、控制总线的宽度决定了对芯片的控制能力;

3、控制总线的宽度与以上两种不同,不同的线代表对不同东西的控制,例如,有读信号输出的控制线,写信号输出的控制线;

2.12 存储器芯片

存储器从物理连接上看是独立的、不同的;从读写属性分为两类:随机存储器(RAM)和只读存储器(ROM);

随机存储器:

1、可读可写,必须带电存储,关机后存储的内容丢失;

2、主要用于存放供CPU使用的绝大部分数据和程序,一般由装在主板上RAM和插在扩展卡槽上的RAM组成;

只读存储器:

1、只能读不能写,关机后内容不丢失;

2、由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,利用硬件设备进行输入输出;

2.13 内存地址空间

定义:

例如,一个CPU的地址总线宽度是10,那么可以寻址1024个内存单元,这1024个可寻址的内存单元就构成了内存地址空间;

特性:

1、都和CPU总线相连;

2、CPU对他们进行读写时,都是通过控制线发出内存读写指令;

操作存储器原理:

也就是说,CPU在操作存储器时,把他们都当做内存来操作,把他们总的看做一个由若干存储单元组成的逻辑储存器,这个逻辑存储器就是内存地址空间;每个物理存储器在这个逻辑存储器中占有一个地址段,即一个地址空间;CPU在这段地址空间读写数据,实际上就是在相对应的物理存储器中读写数据。

内存地址空间大小的限制:

内存地址空间的大小受CPU寻址能力的限制,其实就是受CPU地址总线的宽度限制;

2.14 小计

1、8086CPU地址总线20根,外部和内部数据总线16根,也就是说,寻址地址空间是1M(2^20),内外部数据传输能力是2B(16bit);

8088CPU地址总线宽度是20,运算部件及内部数据总线都是按16位设计的,单外部数据总线只有8条,也就是说,内部数据总线传输能力是2B,外部是1B;

http://www.dtcms.com/a/319433.html

相关文章:

  • 【YOLO学习笔记】YOLOv8详解解读
  • WEB开发-第二十七天(PHP篇)
  • 【Unity Plugins】使用ULipSync插件实现人物唇形模拟
  • 基于Spring Cloud Stream与Kafka的事件驱动微服务架构设计与实战指南
  • 【Python】基于Python自动化邮件发送系统:从配置到实现的完整指南
  • 【YOLOv8改进 - C2f融合】C2f融合SFS-Conv(空间 - 频率选择卷积)提升特征多样性,同时减少参数和计算量
  • 如何在 VS Code 中进行 `cherry-pick`
  • 使用Python验证常见的50个正则表达式
  • react接口防抖处理
  • [网格图DP]3363. 最多可收集的水果数目
  • 视频二维码如何助力博物馆打造智慧讲解体验
  • 数据库事务总结
  • 升级g++编译器
  • RK3568项目(十二)--linux驱动开发之基础通讯接口(上)
  • 时序数据库的功能与应用价值
  • RPC 解析
  • Renesas Electronics RZ/V2N 评估套件
  • 从密钥生成到功能限制:Electron 中 secure-electron-license-keys 的完整集成方案
  • Spring Cloud系列—LoadBalance负载均衡
  • 5分钟了解OpenCV
  • 用 Enigma Virtual Box 把 Qt 程序压成单文件 EXE——从编译、收集依赖到一键封包
  • 大数据spark、hasdoop 深度学习、机器学习算法的音乐平台用户情感分析系统设计与实现
  • 多线程 future.get()的线程阻塞是什么意思?
  • Spark Memory 内存设计的核心组件
  • 2025年主流开源音视频播放项目深度解析
  • 数据结构——B-树、B+树、B*树
  • flutter-使用AnimatedDefaultTextStyle实现文本动画
  • 状压DP-子集枚举技巧
  • MySQL UNION 操作符详细说明
  • 机器视觉系统工业相机的成像原理及如何选型