大学学了C吾言,java,R吾言等等,但是一直都不太满意,java太臃肿,资料太多,jar包也太多,C吾言还好。每门吾言都有他的优越性,没接触过汇编语言,所以就想认真看一遍,至于实验运用,暂时不会去做。这一篇随笔,会持续更新,都是简单笔记而已。
第一章 基础知识
1.1机器语言
1、计算机概念:
早期:可以执行机器指令,进行运算的机器。
现在:CPU和其他受CPU直接或者间接控制的芯片、器件、设备组成的计算机系统。
1、机器语言:每一种微处理器都有自己的机器指令集。---原因:硬件设计和内部结构不同。
总结:机器语言是由高低电平、硬件和处理器内部结构决定,而其代码由0和1组成。
早期纸带打孔:1打孔,0不打孔
1.2汇编语言的产生
(具体描述略,汇编初步解决了机器和人的交流关系,使交流更顺畅,但低层01电路设计依旧伟大,是地基)
举例:
操作:BX的内容送到AX中
机器指令:1000100111011000
汇编指令:mov ax,bx(对比C和java,有点类似于赋值写法,只是等号变成逗号)
汇编语言的编写工作过程:程序猿—》汇编指令—》编译器—》机器码—》计算机
对比c吾言:程序猿编辑c吾言代码—》编译器(词法分析、语法分析、语义检查、中间代码生成、代码优化、目标代码生成)—》链接—》运行
java语言本质也是如此,只不过在这个过程中,他们的编写方式、程序设计的区别,使得他们各有各的优点缺点。
1.3汇编语言的组成
三类指令组成:
汇编指令:机器码的助记符,有对应的机器码
伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
其他符号:如+,-,*/等,由译码器识别,没有对应的机器码
汇编语言的核心:汇编指令,它决定了汇编语言的特性
总结:语言的发展从低级到高级的过程,可以想象未来中文,乃至任何一门吾言都将被计算机所读懂。
1.4存储器
内存—记忆
硬盘—内存—CPU
1.5指令和数据
指令和数据是运用上的概念。
当二者进入cpu时,cpu才赋予他们意义。
1.6存储单元
1bit,即一个二进制位。
8bit=1Byte(即一个字节)。
128个存储单元=128个Byte
128个存储单元=1024bit
1.7CPU对存储器的读写
CPU交互:
存储单元的地址(地址信息)。
器件的选择,读或写的命令(控制信息)。
读或写的数据(数据信息)
信号的传输:通过总线
总线分类:地址线,数据线,控制线
注意:8086CPU和8088CPU的区别。
机器码略,传送3号单元的内容入AX:
mov ax,[3]
1.8地址总站
1根导线对应两种状态,10根导线,对应2的10次方种状态,即数据。最小数为0,最大数为1023。
地址总线的宽度即为总站的根数。
1.9数据总线
8根数据总线对应8位二进制数(即一个字节),16根数据总线对应两个字节。
注意:8088CPU的数据总线宽度为8,8086CPU数据总线的宽度为16。
例如:
8088CPU发送数据89D8时,需要两次,第一次发送D8,第二次发送89。
8086CPU则一次性发送完成。(原因上述注意处)
1.10控制总线
对部件的控制,总线决定对外部器件控制的种数,能力。
1.11内存地址空间
一个CPU地址总线宽度为10,那么可寻址1024个内存单元,这1024个寻到的内存单元就构成这个CPU的内存地址空间。
1.12主板
1.13接口卡
CPU控制接口卡,从而间接控制外设。
1.14各类存储器芯片
随机存储器(RAM)————主存储器
只读存储器(ROM)--------装有系统BIOS
显卡——RAM显卡,ROM(装有显卡BIOS)
网卡————装有网卡BIOS
1.15内存地址空间
汇编————内存地址空间
CPU将系统中各类存储器看作一个逻辑存储器。
总结:划分成多个地址空间,分配给各个部件,控制并使用。
注意,不同计算机系统的内存地址空间的分配情况是不同的。
8086PC机内存地址空间的分配基本情况:000000~9FFFF(主存储器地址空间【RAM】)、A0000~BFFFF(显卡地址空间)
C0000~FFFFF(各类ROM地址空间)