汇编之概述
文章目录
汇编基础术语
什么是汇编语言?汇编语言就是直接工作硬件之上的编程语言。
机器语言
机器语言就是机器指令的集合。电子计算机的机器指令是一串二进制数字,而且不同的微处理器有不同的机器指令集,也就是机器语言。
早期的程序都是编写一大段01的二进制代码,也就是机器语言,显然不利于人工的记忆和操作。为了解决机器语言的晦涩难记的问题,人们想出了汇编语言。
汇编语言
汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。当然,汇编语言是人来设计的,机器是看不懂的,需要经过汇编语言的编译器,将汇编代码翻译成机器指令集,然后机器才可以执行代码。
汇编语言的组成:
- 汇编指令:机器码的助记符,有对应的机器码(核心)
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
- 其他符号:如+、-、*、/等,有编译器识别,没有对应的机器码
存储器
CPU是计算机的核心部件,它控制整个计算机的运作并进行计算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据就放在存储器里,当然也指内存。CPU是与内存打交道,磁盘不能直接与CPU进行数据交换,中间需要存取速度更快的内存。
指令和数据
在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候将有些信息看成指令,有些看成数据。
存储单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127.
一般一个存储单元就是一个字节
CPU对存储器的读写
存储器被划分为多个存储单元,存储单元从零开始顺序编号,这些编号可以看作是存储单元在存储器的地址。
CPU要从内存中读写数据,首先要指定存储单元的地址,然后需要明确进行何种操作。
也就是说,CPU对数据进行读写时,必须和外部器件进行3类信息的交互
- 存储单元的地址信息(地址信息)
- 器件的选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
那么,CPU通过什么将地址、数据和控制信息传到存储器的呢?——总线。
总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类:地址总线、控制总线、数据总线。
CPU读数据:
- CPU通过地址线将地址信息3发出
- CPU通过控制线发出内存读命令,选中存储器芯片并通知它,将要从中读取数据
- 存储器将3号单元里的数据8通过数据线送入CPU
CPU写数据:
- CPU通过地址线将地址信息3发出
- CPU通过控制线发出内存写命令,选中存储器芯片并通知它,将要从中写入数据
- 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在某个物理器件对应的地址空间中读写数据,实际上就是在对应的物理存储器中读写数据。
文章作者 cold-bin
上次更新 2022-11-29