这是我第一次接触汇编语言这一门课程。第一堂课我了解到它是一门非常古董级别的语言。虽然可能在当代java、python等语言盛行的年代它显得有些笨拙和不实用(win10已经完全摒弃了汇编),但是通过第一章课程的学习,我还是感受到了它独有的语言魅力。
汇编语言是一门面向机器的程序设计语言。相比现在的语言而言,汇编更易于读写、调试和修改。它能够直接访问与硬件相关的存储器或I/O端口,能够不受编译器的限制,对生成的二进制代码进行完全的控制。它的执行速度相当快,但是在一些复杂程序的编写上,汇编就会有一些局限性,很容易产生一些BUG,也不容易维护。不能够像现在的语言一样轻松的解决问题。
回首第一章的内容,我大致了解了以下三个知识点。
(一) 指令和数据
指令和数据在内存或磁盘上是没有任何区别的,都是二进制信息。Cpu在工作的时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予了不同的意义。
(二) cpu通过总线对存储器的读写过程
cpu要从内存中读取数据,首先要指定存储单元的地址。也就是说他要先确定它要读取哪一个存储单元中的数据。然后它还要指明,他要对哪一个器件进行操作,进行哪一种操作。可见,cpu想要进行数据的读写,就必须要与外部器件进行三类信息的交互。分别为存储单元的地址(地址信息)、器件的选择,读或写的命令(控制信息)和读或写的数据(数据信息)。同时通过地址总线、控制总线、数据总线来将地址、数据、控制信息传送到存储器芯片中
(三) 内存地址空间
内存地址空间是一个相对较新、较难理解的内容。首先它需要我们了解两个基本内容——主板和接口卡。主板则是承载一些核心器件和主要器件的东西,例如cpu、存储器、外围芯片组等。接口卡则是直接控制显示器、音箱等等外部设部的设备。但这些存储器都是与cpu的总线相连的,都要接收cpu对他们进行读或写的时候所发出的内存读写命令。也就是说,cpu在对他们进行操控时,都是当做内存来对待的,把它们总的看做一个由若干存储单元组成的逻辑存储器。而这个逻辑存储器就是我们所说的内存地址空间。
第一节课的内容可能还比较浅层,但同时也让我了解到了一门语言它在其内部cpu、存储器等部分是怎么进行控制运行的。希望能够通过接下来的学习更为透彻的了解这门语言,有一些自己更为深刻更为独到的见解。