机器语言
机器语言是机器指令的集合,计算机的机器指令是一列二进制数字,计算机将之转化为一系列的高低电平,然后使得计算机可以进行运算;早期的机器指令是有0和1组成的,它的执行时是通过读取在纸带上的打孔(1)或不打孔(0)完成的,由于一个字符需要N个0和1组成,所以即使完成一个很小的功能也是一件相当费力的事情。
所以机器指令有许多缺点
1,由于是有0和1组成,所以指令难记
2、指令的长度和复杂度使得指令容易书写错误
3、如果出错,往往无法检查,必须的重新编写
4、编写的指令难以读懂
汇编指令
由于机器指令的这些缺点,所以汇编指令就应用而生了,说白了汇编指令是对机器指令的包装,它将多个0、1组成的指令包装成了一个个字符或者字符串,这样的好处是
1、指令便于记忆
2、指令便于检查
3、指令的可读性好
4、容易书写
举例如:
机器指令1000100111011000表示把寄存器Bx的内容送到AX中,汇编则写陈mov ax,bx,这样便于记忆和书写
机器指令与汇编指令的转换问题?
汇编指令固然比机器指令好,但是机器是个傻子它只认0、1 其他一概不认,所以我们不得不想办法将这些汇编指令转换成机器指令,然后在让机器读取,执行,就如外国人不懂中文,得一个翻译帮他一样,这里汇编指令也需要一个翻译,我们称之为编译器,我们将我们的汇编指令交给编译器,编译器负责翻译我们的指令给机器,这样机器就自然可以懂得我们的需求
汇编指令不是汇编语言
汇编指令是汇编语言核心,它决定了汇编语言的特性,它是汇编语言的组成部分
汇编语言由三部分组成
1、汇编指令
2、伪指令:没有对应的机器码,由编译器执行,计算机不执行
3、其他符合:+,-,*,/等,由编译器识别,没有对应的机器码
存储器
cpu是计算机的核心部件,相当于计算机的大脑,要想让他思考得给它提供指令和数据,而指令和数据是存放在存储器中的,所以cpu的工作就是读取内存中的数据和指令然后执行,所以他们的
信息传递速度+cpu处理的速度=计算机运算的速度(性能)
存储器中有多个存储位置(存储单元)
每个单元从0开始顺序编号,例如一个存储器128个存储单元,编号就是0-127(计算机中的位置标记,一般都是从0开始的,这估计是外国人的习惯,中国人习惯从1开始,所以经常不注意此细节)
前面说过计算机指令都是0,1组成的,所以存储的信息也都是0,1;而一个存储单元能存储8个bit(1或者0),组成byte(字节),那么128个存储单元就可以存储128字节的信息(这里提个细节,8bit不代表8个状态,因为每一位都有两个状态,所以它的状态是个全排列组合,2的8次方个不同状态)
这里提一下存储单位的置换
1byte=8bit,1kb=1024byte,1MB=1024KB.1GB=1024MB
cpu如何读取内存中的数据和指令
cpu要从内存中读取数据,就得确定数据和指令在内存中的位置,只要这个位置确定了,那么这个位置上的数据和指令自然可以确定。
举个例子
CPU要完成一项任务,它需要小伙伴的帮忙,现在他站在楼下,得打电话问清楚小伙伴的住址(楼层+房号)一个存储器就是一层楼房,这层楼房有128个房间,每个房间都有一个房门号,而一栋楼并不只有一层,它可能有多层,所以它的房间自然可以有N*128个。所以我们要让CPU这个家伙找到与它合作的小伙伴,就得确定他的小伙伴住几层,几号房,这就是cpu寻址过程
最后他得告诉小伙伴所要做的事情串门和邀请(写、读)
cpu读写过程中与内存的交互
1、存储单元的地址-----------地址线
2、读取数据 -----------数据线
3、控制信息(读、写)-------控制总线
地址总线
CPU是通过地址总线来指定存储单元的位置的,地址总线的个数决定了存储单元的个数,如果地址总线有10根,那么他可以表示的存储单元的个数就是2的10次方个地址单元
数据总线
顾名思义,数据总线就是传递数据的线路,数据总线的个数决定了CPU和外界数据传递的速度,8根数据总线一次可以传递8位二进制,16个数据总线可以传16位二进制数
控制总线
控制总线的个数决定了CPU对外的部件有多少种控制,它决定了CPU控制的能力
逻辑地址
地址总线的多少,决定了计算机的逻辑内存地址的大小,所谓逻辑地址我理解的是“它相当于将计算机中的各种存储单元进行统一编号,然后组成的这组新的地址编号(逻辑地址),这样cpu就只需通过逻辑地址就可以进行访问各个存储单元,而不是先确定存储单元的类型(主存储器,显存等),然后再确定地址;简单的说就是将两步合成了一步,比较方便,快捷
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
附件中有图片,可以用来加深记忆、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、