汇编语言基础

与高级语言不同,汇编语言是直接在硬件之上工作的语言,要想更好的利用汇编语言编程,首先要了解硬件系统的结构

<机器语言>

先说一下计算机语言的发展历史吧,首先产生的是机器语言,之后是汇编语言,再然后涌现出了如今五花八门的高级编程语言,但这并不意味着汇编语言就不重要了。汇编语言是用来直接描述或控制cpu的低级语言,如果你想深入了解cpu的工作机制、了解每一段代码的运行步骤、深入了解计算机体系结构、或者对基层开发感兴趣等,汇编语言都是不可避免要学习的;
在介绍它之前,提一下最开始的语言——机器语言
计算机能够读懂的只有机器指令,而机器语言就是机器指令的集合;那么什么是机器指令呢?喏,1000100111011000,随便一串二进制数据就是机器指令,机器指令就是一个个的二进制数字
可想而知,任何一个人终日面对数不胜数的01串恐怕都要崩溃吧,于是汇编语言应运而生了;

<汇编语言>

汇编语言的主体是汇编指令,而汇编指令是机器指令便于记忆的书写形式,这比起一大段一大段的01串总之要好太多了;
既然说了汇编指令是主体,也就意味着汇编语言不仅仅包含汇编指令,事实上,汇编语言发展至今,由以下三种指令组成:

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

(编译器:将汇编指令转换为机器指令的翻译程序)

<存储器>

CPU想必大家都知道,它也被称为中央处理单元,当今计算机的构成中,除却CPU之外,其他诸如芯片、器件、设备组等都是直接或间接受到CPU的控制的;
CPU究竟是怎么工作的呢?它要动起来的话,就必须向它提供指令和数据,指令和数据在存储器中存放,存储器其实就是内存,CPU离开了内存是无法工作的,就算是磁盘给它提供数据,也必须先要存到内存中;

指令和数据虽然应用不同,但说白了其实都是二进制信息,都是一个又一个的二进制数据;存储器被划分为若干个存储单元,这些存储单元从0开始编号,存储单元上就储存着二进制信息;
一个存储单元可以存一个字节,即8位,1Byte;

<CPU对存储器的读写>

既然存储器上有指令和数据,那么CPU是如何得到它们的呢?
其实在计算机内部,CPU和其它芯片、器件之间有专门的导线连接,通常称为总线
总线从逻辑上可以分为地址总线数据总线控制总线
当然CPU与存储器之间也有许多这样的线,CPU想要干什么,首先通过地址总线将要操作的信息地址发给存储器,然后通过控制总线告诉存储器它将怎么处理这些信息,比如要读取信息,那么存储器就会把目标地址上的信息通过数据总线传送给CPU;

<地址总线>

CPU通过地址总线指定存储单元,每一根地址总线也只能传递0或者1的数据,地址总线能够传递多少个不同的信息,就说明CPU可以对多少个存储单元进行寻址;
现假设CPU有8根地址总线,那么就能传递2^8个不同的地址信息,如果将地址从0开始编号,即0-255之间的数据都是CPU的可读写对象;于是,地址总线的宽度其实决定的存储器的大小,也决定了CPU的寻址能力;

<数据总线>

数据总线的宽度决定了CPU和外界的数据传送速度;
如果CPU的数据总线的宽度是8,那么它一次只能传输一个字节的数据,现假设需要传送72C7这个数据,显然这个数据是16位,CPU一次无法传输完,那么它会分两次,首先从低位传输;

<控制总线>

控制总线的宽度决定了CPU对外部器件的控制能力,就比如读信号与写信号,这都有对应的控制总线;

<主板、接口卡以及各类存储器>

<主板>

主板就不用多说了吧,主板上有很多核心器件,比如CPU、存储器、外围芯片组、拓展卡槽等,这些器件均通过总线相连;

<接口卡>

在计算机系统中,所有可用程序控制其工作的设备,都要直接或者间接的受到CPU的控制;那么有这样一个疑问,CPU是怎样控制外部设备的?外部设备与CPU之间可没有总线相连啊,其实这里直接控制这些外部设备的是插在拓展卡槽上的接口卡,而拓展卡槽通过总线和CPU相连,所以接口卡也通过总线与CPU相连;CPU通过控制接口卡,从而实现了对外部设备的间接控制

<RAM和ROM>

在一台PC机上有多个存储器芯片,它们从物理上来说相互独立,从读写属性上来说,分为随机存储器(RAM)只读存储器(ROM);随机存储器可读可写,但断电后存储的内容丢失,只读存储器只能读不能写,但断电后存储内容不丢失;

从功能上,又可以分为以下几类:

  • 主存储器上的RAM:在这上面存储了CPU使用的绝大部分数据与程序,主存储器一般由两个位置的RAM组成,一部分装在主板上,一部分插在拓展卡槽上,也就是内存条;
  • 装有BIOS(即基本输入/输出系统)的ROM:BIOS是一个可以通过它利用该硬件设备进行最基本的输入输出的软件系统,例如,主板上的ROM存储着主板的BIOS(也叫系统BIOS),显卡上的ROM存储着显卡的BIOS,网卡也如此;
  • 接口卡上的RAM:其中最典型的是显卡上的RAM,一般称为显存,显示卡随时将显存内的数据向显示器上输出;

<内存地址空间>

什么是内存地址空间呢?假设CPU有10根地址总线,那么它的寻址能力是2^10,即可以寻访到0~1023个内存单元,这1024个存储单元就是CPU的内存地址空间;内存地址空间是由若干个存储器组成的逻辑存储器

不管是主存储器,还是显存,或者网卡BIOS以及系统BIOS等等,它们共同组成了内存地址空间,这是一个逻辑存储器,CPU向主存储器写入数据,数据会被成功写入,向显存写入数据,会被输出到显示器上,向ROM的地址空间写入数据,无法成功写入;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值