标签:
自己在学习C语言的时候, 有的时候碰到自己理解不了的技术点的话, 就无从下手了, 但是这些技术点如果用汇编来理解的话, 可能非常好理解, 也更容易让大家理解, 所以感觉汇编是很强大的, 对我们学习一些其它的高级语言也很有用, 所以希望自己可以对伟大的汇编语言有一定的了解和认知, 对计算机的思维方式也有更进一步的认识, 对自己的编码习惯有一个好的影响或者改变, 同时对自己的能力有些提高吧.
1. 我们首先要知道什么是机器语言? 也就是机器指令的集合, 机器指令也就是一台机器可以正确执行的命令. 机器指令实际上是一系列的二进制数字, 计算机将之转换成一系列的高低电平, 以此来驱动硬件进行工作.
由于机器指令或者说是机器语言是一些0和1的组合, 不便于人们进行记忆和辨别, 因此就有了汇编语言.
2. 汇编语言的主体或者说核心是汇编指令, 就跟C语言C89中的32个关键字一样. 汇编指令决定了汇编语言的特性.
什么是编译器? 它是一个程序, 就是一个翻译工具, 将我们的汇编指令翻译成机器指令的工具.
程序员和计算机交流的过程是: 程序员 --> 汇编指令 --> 编译器 --> 机器指令 --> 计算机
3. 汇编语言是由三部分组成的
汇编指令: 机器码的助记符, 因为汇编指令和机器指令是一一对应的.
伪指令: 只能由编译器进行识别
其它指令: 也是由编译器进行识别
4. 存储器: 也就是我们平常所说的内存, 它跟磁盘是不一样的, 磁盘中的数据需要读取到内存中, 才可以使用.
5. 指令和数据: 其实指令和数据在内存中存储都是以二进制信息存储的, 没有任何区别, 就看CPU怎么去使用内存中的数据了.
6. 存储单元: 存储器被分成若干个存储单元, 每个存储单元都有自己的编号, 而编号是从0开始的.
类比: 存储器就是电影院, 而座位就是存储单元
更好的类比: 存储器就是一条街, 而一个个的房子就是存储器中的一个个存储单元
大家可以把内存单元理解成是线性排列的.
内存容量单位之间的关系: 1B = 8b, 1KB = 1024B, 1MB = 1024KB, 1GB = 1024MB, 1TB = 1024GB
我们要有一个计算机的思维: 好兄弟找我借1000元钱, 而我说凑个整吧, 借你1024元吧. 是不是很有趣呢?
7. CPU对数据的读写要有以下三类信息的交换:
地址信息: 存储单元的地址
控制信息: 是对内存单元进行读取还是写入数据
数据信息: 要读取或者要写入的数据
8. 通过三种总线来完成数据的交互:
地址总线: 决定了CPU的寻址能力
控制总线: 决定了CPU对外部器件的控制能力
数据总线: 决定了CPU和外部器件进行数据传送的速度
9. 从读写属性对存储器进行分类
RAM: 随机存储器, 可读可写, 必须带电存储, 关机后存储数据丢失
ROM: 只读存储器, 只读不写, 关机后存储的数据不会丢失, 如主板的BIOS, 显卡的BIOS, 网卡的BIOS
10. 内存地址空间: 各个存储器所组成的线性存储空间, 也就是我们所说的逻辑存储空间, 也就是内存地址空间.
检测:
总结: 这章的学习, 主要知道计算机的构成, 和计算机处理数据的过程, 什么是机器语言, 什么是汇编语言.
我们还要知道最终运行程序的是CPU, 所以我们要学会从CPU的角度去思考问题. (超级重要).
标签:
原文地址:http://www.cnblogs.com/ZeroHour/p/4492739.html