汇编语言基础知识


前言

汇编语言是直接在硬件之上操作的编成语言,我们首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。

1.1 机器语言

机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

每一种微指令,由于硬件设计和内部构造的不同,就需要用不同的电平脉冲来控制,使他工作。所以每一个微处理器都有自己的机器指令集,也就是机器语言。

1.2 汇编语言的产生

早期的程序员们很快就发现了使用机器语言带来的麻烦,它是如此难以辨别和记忆,给整个产业的发展带来了阻碍,于是汇编语言诞生了。

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

1.3 汇编语言的组成

汇编语言发展至今,有以下3类指令组成。
(1)汇编指令:机器码的助记码,有对应的机器码
(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
(3)其他符号:如+,-,*,/等由编译器识别,没有对应的机器码。

1.4 存储器

指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何差别,都是二进制数。cpu在工作时把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。

1.5 存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。

电子计算机的最小信息单位是bit,也就是一个二进制位。8个bit组成一个byte,也就是通常讲的一个字节。微型机存储器的存储单元可以存储一个byte,即8个二进制位。一个存储器有128个存储单元,它可以存储128个byte。

1.7 cpu对存储器的读写

cpu要进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3类信息的交互。
(1)存储单元的地址(地址信息)
(2)器件的选择,读或写的命令(控制信息)
(3)读或写的数据(数据信息)

1.8 地址总线

CPU是通过地址总线来指定存储器单元的一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。

1.9 数据总线

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU与外界的数据传送速度。8根数据总线一次可以传送8位二进制数据(即一个字节)。

1.10 控制总线

CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少跟控制总线,就意味着CPU提供了对外器件的多少中控制。所以控制总线的宽度决定了CPU对外部器件的控制能力。

小结

(1)汇编指令是机器指令的助记符,同机器语言一一对应。
(2)每一种CPU都有自己的汇编指令集
(3)CPU可以直接使用的信息在存储器中存放
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号
(6)一个存储单元可以存储8个bit,即8个二进制数
(7)1Byte=8bit 1KB=1024B 1GB=1024MB
(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也就是说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:

地址总线的宽度决定了CPU的寻址能力
数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量
控制总线的宽度决定了CPU对系统中其他器件的控制能力

检测点

1个cpu的寻址能力为8KB,那么它的地址总线宽度是几?
答案:寻址能力为8KB,8*1024=8192。2的13次方等于8192,所以地址总线宽度为13,也就是说有13根地址总线。

引申:为什么我们市面上的内存是128M、256M 、512M、1G、2G、4G、8G内存。全都跟2的几次方有关系。xp为什么只能认识3.25G内存?跟cpu的寻址能力有关系。寻址能力也就代表着cpu能利用的内存。我们常说32位系统,2的32次方是多少呢?应该就是4GB。也就是说32位的cpu就是说32根地址总线。

2、1KB的存储器有几个存储单元,编号从几到几?
答案:1KB=1024byte,就是1024个存储单元,编号从0到1023。
引申:从这里可以知道为啥数组的下标是从零开始。

3、1KB的存储器有几个bit,有几个byte?
答案:1KB=1024个byte,1KB=1024*8个bit。

4、1GB、1MB、1KB分别是多少byte?
答案:1KB=1024byte,1MB=1024KB-10241024byte,1GB=1024MB=10241024KB=102410241024byte。
引申:从上面发现不了什么,这样看:1KB=2的10次方byte,1MB=2的20次方byte,1GB=2的30次方byte,不用算就知道1TB等于2的40次方byte。500G的硬盘应该能存放2的39次方个byte(不考虑500G的硬盘在电脑上实际只有465G左右)。

5、8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根,它们的寻址能力分别为多少?
答案:2的16次方是64KB,2的20次方是1MB,2的24次方是16MB,2的32次方是4GB。

6、8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根,它们的传送数据分别为多少?
答案:8根为1byte,16根为2个byte,32根为4个byte。因为1byte=8bit,1根传送1个bit。

7、从内存中读取1024个字节的数据,8086要读多少次?80386要读多少次?
答案:8086要读1024/2=512次,80386要读1024/4=256次。
引申:8086到80386速度快了一倍啊。

8、在存储器中,数据和程序以二进制的形式存放。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值