汇编语言

大学学了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地址空间)

原文地址:https://www.cnblogs.com/ciscolee/p/14155045.html