汇编语言第一章知识梳理及思考
通过对《汇编语言》第一章的学习,我渐渐了解了汇编语言。经常有人说汇编语言没有其它语言重要,甚至很多已经在工作岗位上的人也不太了解汇编语言。但我还是想坚持学习下去,虽然我现在也说不出太多学习汇编语言能带给我的好处,我觉得一定会受益匪浅,且是一门计算机编程的必修课。
学习之后,对于编程语言的基础知识,我有了一定的了解。最大收获在于我对编程语言有了一个系统的了解,也体会到了它的地位和实用性。以下是我对第一章知识的系统梳理:
计算机cpu只能识别简单的二进制编码,也就是机器语言,但对于人类来说单纯的二进制编码太过枯燥和繁琐,因此汇编语言便诞生了。汇编语言由汇编指令、伪指令、其他符号组成。汇编语言的主题是汇编指令,汇编指令是机器指令便于记忆的书写格式,它决定了汇编语言的特性。伪指令由编译器执行,其他符号也只由编译器识别。
在系统学习汇编语言之前还需要先了解计算机的硬件结构。cpu是计算机的核心部件,他控制计算机的运作并进行运算。然而要让cpu工作就要向它提供指令和数据。指令和数据必须在存储器中存放,也就是平时所说的内存。在一台pc机中内存的作用仅次于cpu。磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无发被cpu使用。
指令和数据在内存或磁盘上没有任何区别,都是二进制信息。它们的区别在于用途,可以是数据也可以是指令。例如:1000100111011000可以是89D8H(数据)可以是MOV AX.BX(指令)。
存储器也不一定是内存,计算机中每一个电子器件都有自己的存储器(显存 GPU)。存储器被划分为若干个存储单元,每个存储单元从零开始顺序编写序号(类似于数组序号)。对于大容量存储器一般还用以下单位来记容量:
用B来代表Byte字节
1Byte=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
磁盘容量单位同内存一样。
cpu想要进行数据的读写必须和外部器件(标准说法是芯片)进行三类信息交互:
存储单元的地址(地址信息);
器件的选择,读或写命令(控制信息);
读或写的数据(数据信息);
电子计算机能处理、传输的信息都是电信号,电信号要用导线传送;
在计算机中专门有链接cpu和其他芯片的导线,通常称为总线BUS;
物理上:一根根导线的集合;
逻辑上划分为:
地址总线
数据总线
控制总线
cpu、总线、内存之间的关系为:
cpu==总线==内存(各种器件内存的线性排列) 地址线==控制线==数据线
二进制信息如果放到地址总线中就按照地址信息处理;如果放到数据总线中就按照数据处理;如果放到控制总线中就按照指令处理;就可以将指令和数据很好的区分开来。
cpu的革新速度很快,但cpu内部的架构都是一样的,现在的晶体管寄存器通道变多了而已。
地址总线(64位速度:cpu、操作系统、软件)
cpu是通过地址总线来制定存储单元的;
地址总线上能传送多少个不同的信息,cpu就可以对多少个存储单元进行寻址;
32位cpu64cpu说的就是寻址能力;
一个cpu有n根地址总线,则可以说这个cpu的地址总线宽度为n;
这样的cpu最多可以寻址2的n次方个内存单元(一个字节);
数据总线
cpu与内存或其他器件之间的数据传送是通过数据总线来进行的;
数据总线的宽度决定了cpu和外界的数据传输速度;
控制总线
cpu对外部器件的控制是通过控制总线来进行的;
在这里控制总线是个总称,控制总线是一些不同控制线的集合;
有多少跟控制总线就意味着cpu提供了对外部器件的多少种控制;
控制总线的宽度决定了cpu对外部器件的控制能力;
小结:
(1)汇编指令是机器指令的助机符,同机器指令一一对应;
(2)每一种cpu都有自己的汇编指令集;
(3)cpu可以直接使用的信息都在存储器中存放;
(4)在存储器中指令和数据没有任何区别,都是二进制信息;
(5)存储单元从零开始顺序编写;
(6)一个存储单元可以存储8个bit(用作单位写成“b”),即八位二进制数;
(7)
1Byte=8bit;
1KB=1024B;
1MB=1024KB;
1GB=1024MB;
1TB=1024GB;
(8)每一个cpu芯片都有许多管脚,这些管脚和总线相连;
也可以说这些管脚引出总线;
一个cpu可以引出三种总线的宽度标志了这个cpu的不同方面的性能:
地址总线的宽度决定了cpu的寻址能力;
数据总线的宽度决定了cpu与其他器件进行数据传送的一次数据传送量;
控制总线的宽度决定了cpu对系统中对其他器件的控制能力;
学习了第一章,我明白了,汇编语言可以比其他语言更接近机器语言,效率更高,同时也易于理解。更重要的是掌握了汇编语言,就可以从底层用底层思维进行编程,是一种全新高效的思路。并且未来还有反汇编等更有意思更实用的技能。
浙公网安备 33010602011771号