机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令。电子计算机的机器指令就是一列二进制数据,计算机将其转换为一列高低电平,使计算机的电子器件受到驱动,进行运算。
汇编语言的主体使汇编指令,汇编指令和机器指令的差别在于表示的方法上,汇编指令是便于记忆的书写格式
例如:
机器指令:1000100111011000 表示把BX寄存器的内容发送到 AX寄存器中
汇编指令:mov ax,bx
cpu是计算机的核心部件,控制整个计算机的运作并进行运算,想要cpu工作就必须提供指令和数据,指令和数据就存放再存储器中。
指令和数据只是应用上的概念,在内存或磁盘上,指令和数据没有任何区别,都是二进制信息,CPU工作时把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。只有在使用时,才会有意义
特点:存储器被划分成若干个存储单元,每个存储单元从 0 开始编号。每个存储器可以存储 128个Byte,而一个存储单元可以存储1个Byte
CPU要从内存中读取数据时需要与外部器件(芯片)进行下面3类的信息交互
电子计算器能处理,传输的信息都是电信号,电信号需要使用导线进行传送,而计算机中有专门连接CPU和其他芯片的导线,通常称为 总线
如何操作CPU进行数据的读取?
机器码:101000010000001100000000
含义:从3号存储单元读取数据送入寄存器AX
汇编指令:MOV AX,[3]
CPU是通过地址总线来指定存储单元的,也就是说地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
例如:一个CPU有10根地址总线,而一根导线可以传送的稳定的状态为高电平和低电平两种状态,也就是1和0,而10位二进制数据可以传送2的10次方,最小数为0,最大数为1023。一个CPU有N根地址线,则可以说这个CPU最多可以寻找2的N次方个内存单元
CPU与内存或其他器件之间的数据传输是通过数据总线来进行传输的,数据总线的宽度决定了CPU和外界的数据传输速度。8根数据总线一次可以传送一个8位二进制数据(一个字节),16根数据总线一次可以传输2个字节。
8088CPU数据总线的宽度为8位,8086CPU的数据总线宽度位16位。所以8088传输一个 89D8 数据到内存中,需要分成两次传输
CPU对外部器件的控制是通过控制总线进行的。控制总线是一些不同控制线的集合,有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。控制总线的宽度决定了CPU对外部器件的控制能力
前面说到的内存读或写命令,是由几根控制线综合发出的,其中有一根称为“读信号输出”,还有一根称为“写信号输出”的控制线
例如:一个CPU的地址总线的宽度为10,那么就是1024个存储单元,而这1024个可寻的存储单元就构成了内存地址空间。而我们所用的 64位CPU,理论上来说寻址能力可以达到 200多wTB
主板:每一台PC机都有主板,主板上有核心器件和主要器件,这些器件通过总线相连。例如:CPU、存储器、外围芯片组、扩展插槽。扩展插槽一般有RAM内存条和各类接口卡
接口卡:所有程序控制其工作的设备,必须受到CPU的控制。如显示器、音响这类设备都是通过扩展插槽上面的接口卡与CPU想连,而接口卡又是通过总线同CPU想连。CPU可以直接通过控制这些接口卡,实现对外设的简介控制
从独写属性上看分为两类:随机存储器(RAM)、只读存储器(ROM)
RAM:可读可写,必须带电存储,关机后存储内容丢失
ROM:只能读取不能写入,关机后内容不丢失
CPU在控制上诉器件的时候,都把它们当作内存来对待,把它们总的看作一个由若干个存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址。
假设上图中的内存地址空间的地址段分配如下:
cpu向地址为1000H的内存单元中写入数据,这个数据就会被写入主随机存储器中;
cpu向地址为8000H的内存单元中写入数据,这个数据就被写入显卡中,然后会被显卡输出到显示器上;
内存地址空间的大小受CPU地址总线宽度的限制,总线宽度为20,那么可以传送 2^20 个不同的地址信息,就是1MB;同理总线宽度为32,内存地址空间的最大为 4GB。所以当我们想在某类存储器中读写数据时,必须要知道第一个单元的地址和最后一个单元的地址;比如我们要将数据显示在屏幕上,就必须要知道显存的内存地址空间是多少。
不同的计算器内存地址的分配是不同的,下面是8086CPU的内存地址划分
00000 – 9FFFF 相当于在独写 主存储器中的数据;A0000 – BFFFF 相当于在操作显存中的数据;C0000 – FFFFF 操作是无效的,因为ROM是只读存储器
最终运行程序的是CPU,我们用汇编语言的时候,必须要从CPU的角度考虑问题,系统中所有的存储器的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU的寻址能力的限制
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179761.html原文链接:https://javaforall.cn