汇编语言之基础
本系列为学习<汇编语言> 王爽版 的学习笔记
[TOC]
汇编语言是什么?
汇编语言是直接在硬件之上工作的编程语言,是人和计算机沟通的最直接的方式,他描述了机器最终所要执行的指令序列.
学习汇编的目的:
1.充分获得底层编程的体验
2.深刻理解机器运行程序的机理
机器语言
机器语言是机器指令的集合.电子计算机的机器指令是一列二进制数字. 计算机将之转变成为一列高低电平,以使计算机的电子器受到驱动,进行运算.
早期的程序设计均使用机器语言.程序员们将用0,1数字编程的程序代码打在纸带或卡片上,1打孔,0不打孔.再将程序通过纸带机或者卡片机输入计算机,进行计算.
由此可以想象,当时的编程巨麻烦,可维护性也特差,也给计算机产业发展造成了障碍,于是汇编语言就产生了.
汇编语言的产生
汇编语言的主题是汇编指令.他与机器指令的差别在于指令的表达方式上,汇编指令更便于记忆.
汇编的组成
- 汇编指令
机器码的助记符,有对应的机器码
是汇编语言的核心
- 伪指令
没有对应的机器码,由编译器执行,计算机并不执行
- 其他符号
如+ - * /等,由编译器识别,没有对应的机器码
存储器
就是我们常说的内存,需要注意的是磁盘不是内存,磁盘上的数据或者程序如果不读到内存中,CPU是无法使用的
- 指令和数据
两者其实没有区别,都是二进制信息
- 存储单元
存储器被划分成若干个单元,每个存储单元从0开始顺序编号,一个存储单元可以存储8个bit
一个二进制位: 1 bit
1 byte = 8 bit
cpu对存储器的读写
cpu想进行读写,必须和外部器件进行信息交互:
1 .存储单元的地址(地址信息)
2.器件的选择,读或写的命令(控制信息)
3.读或写的数据(数据信息)
总线
计算机能处理和传输的信息都是电信号,电信号是通过导线传送的.
专门连接CPU和其他芯片的导线被称为:总线,从物理上讲就是一根根导线的集合.
根据传输的信息不同,总线在逻辑上分为3种:
- 地址总线
- 控制总线
- 数据总线
地址总线
CPU通过地址总线来指定存储器单元,可见地址总线上能传送多少个不同的信息,CPU就能对多少个存储单元进行寻址
电子计算机中,一根导线能传送的稳定状态只有2中:高电平或者低电平,用二进制表示就是1和0.所以N根导线能表示2的N次方个不同数据.
一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N
数据总线
数据总线的宽度决定了CPU和外界的数据传送的速度.
8根数据总线一次可以传送8位二进制数据(即一个字节)
如果传送一个16位进制的数 使用数据总线宽度为8的8088CPU需要传输2次 ,而使用数据总线宽度是16的8086CPU就只需要一次
控制总线
控制总线是一些不同控制线的集合.
控制总线的宽度决定了CPU对外部器件的控制能力
内存地址空间
虽然外部器件时独立的,但是CPU在操作其他器件时,都是把他们当做内存对待的.把他们看成由若干存储单元组成的逻辑存储器,
可寻到的内存单元构成内存地址空间
对于CPU而言,系统中所有的存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU的寻址能力的限制.这个逻辑存储器就是我们说的内存地址空间
- 主板:
主板上有核心器件和一些主要器件
这些器件通过总线相连
- 接口卡
CPU不能对外部设备直接控制,直接控制这些设备的是在扩展插槽上的接口卡,扩展槽通过总线和CPU相连,所有接口卡也可以通过总线同CPU相连.
CPU通过总线想接口卡发送命令
接口卡根据CPU的命令控制外设备