前言:专接本中要考汇编语言,所以就开始看小甲鱼的汇编语言,参考书籍是王爽老师的汇编语言。
个人感觉 整本书还是不错的。所以建议大家学习下。(所以我就把我的笔记贴出来)。
基础知识
汇编语言是直接在硬件之上工作的编程语言,
1、机器语言
1.1机器语言是机器指令的集合。
Cpu执行机器指令,执行运算的机器。
Cpu是一种微处理器。
每一种微处理器,由于硬件设计和内部结构的不同,就需要不同的电平脉冲来控制,使它工作,所以每一种微处理器都有自己的机器指令集,也就是机器指令。
1.2、汇编语言的产生
汇编语言的主体是汇编指令,汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式
汇编指令:mov ax,bx
寄存器Bx的内容送到ax中
1.2.1 、寄存器解释
简单的讲是cpu中可以存储数据的器件,一个cpu中有多个寄存器 ax是其中一个寄存器的代号.bx是另一个寄存器的代号
1.3、汇编语言的组成
汇编语言发展至今 有一下3类指令组成
- 汇编指令 :机器码的助记符 有对应的机器码
- 伪指令:没有对应的机器码,由编译器执行,计算机并不执行
- 其他符号:+ - * / 由编译器识别,没有对应机器码
汇编语言的核心是汇编指令,他决定了汇编语言的特性
1.4、存储器
Cpu是计算机的核心部件,他控制整个计算机的运作并进行计算,想让一个cpu工作,就必须向他提供指令和数据。指令和数据在存储器中的存放,也就是我们常说的内存,在一台pc机中内存的作用仅次于cpu,离开了内存,性能在好的cpu也无法工作,
磁盘不同于内存,磁盘上的数据或程序如果不读取到内存中,就无法被cpu使用。
1.5、指令和数据
指令和数据是应用上的概念,在内存和磁盘上,指令和数据没有任何区别,都是二进制信息,cpu在工作的时候把有的信息看做指令,有的看做数据,为同样的信息赋予不同的意义,
1.6、存储单元
存储单元被划分成若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号0-127
微型存储器的容量是以字节为最小单位来计算的,对于拥有128个存储单元的存储器,我们来说 他的容量就是128个字节
1KB=1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB
磁盘的容量单位同内存一样,实际上以上单位的微机中常用的计算单位
- Cpu对存储器的读写
Cpu要从内存中读数据,首先要指定存储单元的地址,也就是说他要先确定要读取哪一个存储单元的数据,
Cpu要想进行数据的读写,必须和外部器件(标准的说法是芯片)
- 存储单元的地址(地址信息)
- 器件的选择,读或写的命令(控制信息)
- 读或写的数据(数据信息)
1,7、总线的含义 理解
在计算机中专门有连接cpu和其他芯片的导线,通常称为总线。
总线从物理上来将,就是一根根导线的集合,根据传送信息的不同,总线从逻辑上分为3类
- 地址总线
- 控制总线
- 数据总线
- Cpu通过地址线将地址信息3发出
- Cpu通过控制线发出内存读命令,选中存储器芯片,并通知他 将要从读取数据
-
存储器将3号单元中的数据8通过数据线送入cpu
1.8、地址总线
Cpu是通过地址总线来指定存储器单元的。
一个cpu有N根地址总线,则可以说这个cpu的地址总线的宽度为N.这样的cpu最多可以寻找2的n次方个内存单元。
- 数据总线
Cpu与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了cpu和外界的数据传送速度。
8088cpu的数据总线宽度为8 8086cpu的数据总线宽度为16
- 控制总线
Cpu对外部器件的控制是通过控制总线来进行的,这里控制总线是一个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着cpu提供了对外部器件的多少种控制。
控制总线的宽度决定了cpu对外部器件的控制能力。
- 内存地址空间
一个cpu的地址总线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到单元就构成了这个cpu的内存地址空间,
- 主板
在每一台pc机中,都有一个主板,主板上有核心器件和一些主要器件,这些器件通过总线(地址总线、数据总线、控制总线)相连。这些器件有cpu、存储器、外围芯片组、拓展卡槽。拓展插槽上一般插有RAM内存条和各类接口卡
- 接口卡
计算机系统中,所有可用程序控制其工作的设备,必须受到cpu的控制。Cpu对外部设备都不能直接控制,如显示器。
直接控制这些设备进行工作的是插在拓展卡槽上的接口卡。拓展插槽通过总线和cpu相连,所以接口卡也是通过总线同cpu
相连。Cpu可以直接控制这些接口卡。从而实现cpu对外设的间接控制,简单的讲,cpu通过总线想接口卡发送命令,接口卡
根据cpu的命令控制外设进行工作。
- 各类存储器芯片
一台pc机上,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器(RAM)(random access memory)和只读存储器(Rom)Read only memory.随机存储器可读可写,但必须带电存储,关机后存储的内容丢失,只读存储器只能读取不能写入。关机后其中的内容不丢失,
- 随机存储器
用于存放供cpu使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上的RAM和插在拓展槽上的RAM
- 装有bios (basic input/output system 基本输入输出系统)的ROM
Bios是由主板和各类接口卡厂商提供的软件系统,可以通过他利用该硬件设备进行最基本的输入输出。
- 接口上的RAM
某些接口卡需要对大批量输入、输出数据进行存储,在其上装有RAM
- 内存地址空间
上述的那些存储器,在物理上都是独立的器件
- 都和cpu的总线相连
- Cpu他们进行读写的时候都通过控制线发出内存读写命令
所有的物理存储器都被看作一个由若干个存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占一个地址段,既一段地址空间,cpu在这段地址空间读写数据,实际上就是在相对应的物理存储器中读写数据。
内存地址空间
最终运行程序的是cpu.我们用汇编语言编程的时候,必须要从cpu的角度考虑问题,对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中的,它的容量受cpu寻址能力的限制,这个逻辑存储器既是我们常说的内存地址空间。