第一章 基本知识
之前就有了解过汇编的大致内容,虽然以后工作中不一定会用到它,但是对于我们理解计算机硬件的工作原理以及高级编程语言与底层指令之间的关系有很大帮助,加深对于计算机的认识,日后即使使用高级语言编程也能理解其具体实现方法。所以个人认为学习汇编还是有价值的。
笔记希望能做到结构分明,细致全面,简洁易懂,辅助汇编学习,也可做考试复习资料。
下面总结第一章的内容:
计算机编程语言的演进
- 机器语言
- 二进制的机器指令的集合
- 计算机可直接执行
- 依赖硬件
- 汇编语言
- 主体为汇编指令,便于记忆
- 不同CPU有不同的汇编指令
- 组成
- 汇编指令:机器码的助记符,有对应的机器码
- 伪指令:编译器执行,计算机并不执行,无对应的机器码
- 其他符号:如+,-,*,/,编译器识别,无对应的机器码
- 高级语言
- 不依赖具体计算机
机器语言 | 汇编语言 | 高级语言 | |
---|---|---|---|
计算机能否直接识别 | 能 | 不能 | 不能 |
易用性 | 差 | 中 | 好 |
占据空间 | 小 | 小 | 大 |
执行速度 | 快 | 快 | 慢 |
用途 | 特殊 加密/解密 | 系统核心要求速度快,代码短的程序 直接操纵I/O信息安全 | 一般性系统级和应用层软件开发 |
计算机硬件系统的基本结构
- 冯诺依曼计算机
- 存储器,控制器,运算器 (共同组成CPU),输入设备,输出设备
- 寄存器
- CPU内部用于存储数据的器件
- 一个CPU含多个寄存器
- 存储器、存储单元
- 存放指令和数据
- 以二进制形式存放,形式上无任何差别
- 指令和数据的区别是应用上的概念
- 以字节为单位划分存储单元,从0开始编号
存储器的容量通常用KB, MB, GB, TB, PB计
1KB = 1024B (210B)
1MB = 1024KB (210KB)
1GB = 1024MB (210MB)
1TB = 1024GB (210GB)
1PB = 1024TB (210TB)
- 存放指令和数据
- CPU对存储器的读写
- 对下面3类信息交互
- 地址信息:存储单元的地址
- 控制信息:器件的选择,读或写的命令
- 数据信息:读或写的数据
- 总线 :连接CPU和其他芯片的导线,用来传输电信号
- 地址总线
- 指定存储单元
- 宽度决定CPU寻址能力
- 一个CPU有N根地址线,则该CPU的地址总线宽度为N,可寻找2的N次方个存储单元
- 控制总线
- 控制外部器件
- 宽度决定CPU对外部器件的控制能力
- 数据总线
- CPU与其他器件之间的数据传送
- 宽度决定CPU与外界的数据传输速度
- 8根数据总线一次可传送一个8位二进制数据(一个字节)
- 8086有16根数据线,可一次传送16位数据
- 地址总线
- 对下面3类信息交互
内存地址空间
- 主板 :集合核心器件和主要器件,通过总线相连
- 接口卡 :插在扩展插槽(通过总线与CPU相连)上,直接控制外部设备
- 各类存储器芯片:分为随机访问存储器RAM和只读存储器ROM
- 主随机访问存储器
- 装有BIOS的ROM
- 接口卡上的RAM
- 内存地址空间
- 也称寻址空间
- CPU将各类独立的存储器看作一个逻辑存储器(假想),各独立存储器在逻辑存储器上占一段空间
- 不同的计算机系统的内存地址空间分配情况是不同的
- 与CPU地址总线的宽度直接相关,表示CPU所能寻找到的最大地址空间范围
- eg.8086CPU
地址总线宽度为20,可定位2^20个内存单元,大小为1MB,内存编号从00000到FFFFF
- eg.8086CPU