码迷,mamicode.com
首页 > 其他好文 > 详细

汇编学习笔记01(基础知识)

时间:2015-05-10 20:19:23      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

自己在学习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. 内存地址空间: 各个存储器所组成的线性存储空间, 也就是我们所说的逻辑存储空间, 也就是内存地址空间.

检测: 

  1. 1个 CPU的寻址能力为8KB, 那么它的地址总线的宽度为 13
  2. 1KB的存储器有 1024 个存储单元, 存储单元的编号从 0 到 1023
  3. 1KB的存储器可以存储 8192 个bit, 1024 个Byte.
  4. 1GB, 1MB, 1KB分别是 2^30 Byte, 2^20 Byte, 2^10 Byte
  5. 8080, 8088, 80286, 80386的地址总线宽度分别为16, 20, 24, 32根, 则它们的寻址能力分别为: 64KB, 1MB, 16MB, 4GB
  6. 8080, 8088, 8086, 80286, 80386的数据总线宽度分别为8, 8, 16, 16, 32根, 则它们一次可以传送的数据为1B, 1B, 2B, 2B, 4B
  7. 从内存中读取1024字节的数据, 8086至少要读512次, 80386至少要读256次
  8. 在存储器中, 数据和程序以 二进制 形式存放

总结: 这章的学习, 主要知道计算机的构成, 和计算机处理数据的过程, 什么是机器语言, 什么是汇编语言.

我们还要知道最终运行程序的是CPU, 所以我们要学会从CPU的角度去思考问题. (超级重要).

 

汇编学习笔记01(基础知识)

标签:

原文地址:http://www.cnblogs.com/ZeroHour/p/4492739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!