刚刚开始对汇编语言的学习,相较于以往学过的高级语言如c c++,还有正在学习的java,汇编显得更会晦涩一点,这种接近底层的代码书写与之前的截然不同。
汇编语言由三类指令组成:汇编指令,伪指令与其他符号。只有汇编指令才有机器码。
从汇编的特性了解到到,它是一门低级语言,可以直接对硬件进行操控,效率高,但是面对复杂程序时难以去纠错,利弊都很明显,而学习这门语言也有助于我们将自己的代码变得更为简洁,也更能理解代码背后的含义。
第一章的内容不多,去掉汇编的产生和特性,着重介绍了cpu对储存器的读写过程,并同时介绍了各个部件与单元。
首先,一个与常识相反的,指令和数据在内存中是一样的,都以二进制形式储存。CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。
cpu对内存的读写是通过总线来完成的,总线分为三类:地址总线,数据总线,控制总线。在读取内存操作中,cpu通过地址总线将地址信息发出,然后通过控制总线发出内存读命令,最后内存接到命令后将数据通过数据总线送入cpu。写入与读取操作基本类似,就不再多说。这些总线以宽度界定完成任务的能力大小,例如宽度为10,代表有10个总线,数据总线一次数据传输为10位或是地址总线的寻址能力就是2的10次方个内存单元。
比如CPU发出取回编号为3内存地址的数据8那么读取数据的过程可用图表示
内存地址空间:内存地址空间就是由你能够寻址的所有内存单元构成的全部内存空间。
在一台主机中,是由主板作为核心部件的。而我们所熟知的cpu也是存在于主板上的。主板上的核心器件,除了cpu,还有存储器,外围芯片组,扩展插槽等。cpu不能直接控制外部设备,扩展插槽的作用是将插在上面的接口卡通过总线与cpu相连,而接口卡则是控制外部设备的部件,cpu实际上通过各种接口卡对外部设备进行控制。
在主机内有两种主要的存储器RAM(随机访问存储器)和ROM(只读存储器),RAM:比如主存(内存),CPU内的寄存器.ROM,比如主板上和各接口卡上用于存储固化信息的存储器。
检测点知识:
(1)1个CPU寻址能力为8KB,那么它的地址总线宽度为(13根)。
(2)1KB的存储器有(1024)个存储单元,编号从(0)到(1023)。
(3)1KB的存储器可以存储(8K)个bit,(1K)个Byte。
(4)1GB、1MB、1KB分别是(2^30,2^20,2^10)Byte。
(5)8080、8088、80286、80386地址总线分别为16根、20根、24根、32根,则它们寻址能力分别为:64KB、1MB、16MB、4GB。
(6)8080、8088、8086、80286、80386数据总线宽度分别为8根、8根、16根、16根、32根,则它们一次可以传送的数据分别为:1B、1B、2B、2B、4B。