汇编基础术语

什么是汇编语言?汇编语言就是直接工作硬件之上的编程语言。

机器语言

机器语言就是机器指令的集合。电子计算机的机器指令是一串二进制数字,而且不同的微处理器有不同的机器指令集,也就是机器语言。

早期的程序都是编写一大段01的二进制代码,也就是机器语言,显然不利于人工的记忆和操作。为了解决机器语言的晦涩难记的问题,人们想出了汇编语言。

汇编语言

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。当然,汇编语言是人来设计的,机器是看不懂的,需要经过汇编语言的编译器,将汇编代码翻译成机器指令集,然后机器才可以执行代码。

汇编语言的组成:

  • 汇编指令:机器码的助记符,有对应的机器码(核心)
  • 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
  • 其他符号:如+、-、*、/等,有编译器识别,没有对应的机器码

存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行计算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据就放在存储器里,当然也指内存。CPU是与内存打交道,磁盘不能直接与CPU进行数据交换,中间需要存取速度更快的内存。

指令和数据

在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候将有些信息看成指令,有些看成数据。

存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127.

一般一个存储单元就是一个字节

CPU对存储器的读写

存储器被划分为多个存储单元,存储单元从零开始顺序编号,这些编号可以看作是存储单元在存储器的地址。

CPU要从内存中读写数据,首先要指定存储单元的地址,然后需要明确进行何种操作。

也就是说,CPU对数据进行读写时,必须和外部器件进行3类信息的交互

  • 存储单元的地址信息(地址信息)
  • 器件的选择,读或写的命令(控制信息)
  • 读或写的数据(数据信息)

那么,CPU通过什么将地址、数据和控制信息传到存储器的呢?——总线。

总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类:地址总线、控制总线、数据总线。

image-20221129205642312

CPU读数据:

  1. CPU通过地址线将地址信息3发出
  2. CPU通过控制线发出内存读命令,选中存储器芯片并通知它,将要从中读取数据
  3. 存储器将3号单元里的数据8通过数据线送入CPU

CPU写数据:

  1. CPU通过地址线将地址信息3发出
  2. CPU通过控制线发出内存写命令,选中存储器芯片并通知它,将要从中写入数据
  3. CPU通过数据线将数据26送入内存的3号单元中

地址总线

CPU通过地址总线来指定存储单元,由此可推知,地址总线上能传递多少种不同的信息,CPU就可以对多少个存储单元进行寻址,假设一个CPU有10根地址总线,那么其寻址空间为0 ~1023,即2^10个存储单元。即地址总线的宽度决定了CPU的寻址范围。

数据总线

CPU和其它器件之间的数据传递是通过数据总线进行传递的,数据总线的宽度决定了CPU和其它器件间数据传送速度。8根数据总线一次可以传送一个8位二进制数据,因为每一根总线只能传递一个高电平或低电平来代表0或1,即1根总线一次只能传递一位。

控制总线

CPU对外部器件的控制是通过控制总线完成的,有多少根控制总线就意味着CPU对外部器件有多少种控制。即控制总线的宽度对外部器件的控制能力。

主板

每台PC都有一个主板,每个主板上都存在一些核心器件:CPU,存储器,外围芯片组,扩展卡槽等。扩展卡槽上一般有RAM内存条和各类接口卡。这些器件通过总线相连。

接口卡

CPU对于诸如:显示器,音箱,打印机这样的外设不能直接控制,直接控制这些设备工作的是插在扩展插槽上的接口卡,由于扩展插槽通过总线和CPU相连,所以接口卡也通过总线和CPU相连。之后CPU通过总线向接口卡发送命令,接口卡在根据CPU的命令控制外设进行工作。(例:比如一个音箱通过USB插槽连接到了电脑,而该插槽通过总线和CPU相连,此时当要播放声音时会将数据指令等通过数据总线发送到卡槽,即音箱内的接口卡也会收到,之后控制音箱工作)

各类存储器芯片

存储器从读写属性上可以分为随机存储器(RAM)和只读存储器(ROM),其中随机存储器(RAM)可读可写但必须带电存储,关机后存储内容会丢失。只读存储器只能读取,不能写入,关机后其内容不会丢失。

而从功能和连接方式看又可以分为以下3类:

  • 随机存储器(内存):用于存放供CPU使用的绝大部分程序和数据
  • 装有BIOS的ROM:BIOS(基本输入/输出系统)是由主板和各类接口卡厂商提供的软件系统,可以通过BIOS使用硬件设备进行最基本的输入输出。在主板和某写接口卡上插有存储相应BIOS的ROM,如:主板上的ROM中存储着主板的BIOS(通常即系统BIOS),显卡上的ROM存储着显卡的BIOS,网卡上装有网卡的BIOS。
  • 接口卡上的RAM:有的接口卡需要对大批量的输入输出数据进行进行暂存,因此需要RAM。最典型的就是显卡上的RAM,一般称为显存。显卡随时将显存中的数据输出到显示器上。

CPU的内存地址空间

假设一个CPU的地址总线宽度为10,那么其寻址范围为1024个内存单元,而这1024个内存单元就构成了这个CPU的内存地址空间。

各类物理上独立的器件都是通过总线与CPU相连的,CPU操作它们时也是将它们当作内存来看待的,每个物理存储器占用CPU的内存地址空间中的一部分,当CPU在某个物理器件对应的地址空间中读写数据,实际上就是在对应的物理存储器中读写数据。