什么是汇编语言:
汇编语言是比机器语言高级,但依旧偏向于硬件的一种编程语言。比起C、C++、Java这些偏向于人的语言,在编写汇编程序时需要考虑更全面,要写的代码也要更多,但汇编程序的运行速度却是这些语言所不能比的。不同的CPU也有不同的汇编语言。
汇编语言的组成 and 指令vs.数据:
汇编语言由3类指令组成:汇编指令、伪指令和其他符号(注释、变量、标号、段等)。其中,汇编指令有对应的机器码,而伪指令和其他符号则没有对应的机器码。
在内存中,不管是指令还是数据,都是以二进制的形式存储,两者的区别只在应用上。那么,区别指令和数据的方式是什么呢?也许程序员会规定将二进制的第一位作为区别的标志位,如果为1,则是指令,反之则为数据,但是,随着计算机的不断发展,这样的方式势必会出现错误,所以就要找到一个通用的方式。至于CPU具体是如何区分指令和数据的将会在第二章中详细说明。
CPU的组成 and CPU通过总线对存储器数据的读写过程:
CPU主要由五大部分组成,分别是控制器、运算器、存储器、输入设备和输出设备。而在CPU对存储器进行读写的时候还要通过地址总线、控制总线和数据总线(不过这三种总线也依旧只是在传输不同的信息时有所不同,在外观看来并无区别,也没有谁比谁更重要之分)。
读数据:先由CPU通过地址总线将要读取的地址信息传输到内存中找到这个地址单元,再由CPU通过控制总线发出“读”的信息,最后内存通过数据总线将所寻找到的数据信息传输到CPU中。
写数据:先由CPU通过地址总线将要写入的地址信息传输到内存中找到这个地址单元,再由CPU通过控制总线发出“写”的信息,最后CPU通过数据总线将要写入的数据信息传输到内存中。
内存地址空间:
内存地址空间又称寻址空间,与CPU地址总线宽度有关,表示CPU所能寻找到的最大地址空间范围。若设一个CPU的地址总线宽度为n,那么可以寻址2n个内存单元,这2n个可寻到的内存单元就构成这个CPU的内存地址空间。简单来讲,所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,而内存地址空间是计算机的各个物理存储器在这个逻辑存储器中所占的地址空间之和。
ps:计算机中的物理存储器有随机存储器、装有BIOS的ROM和接口卡上的RAM。主随机存储器一般由装在主板上的RAM和扩展插槽上的RAM组成;BIOS全称Basic Input/Output System,即基本输入输出系统,主板、显卡、网卡上一般都有装有BIOS的ROM;接口卡上的RAM最常见的就是显存。
由于汇编语言是基于硬件的语言,所以了解系统中的内存地址分配情况是很重要的,但不同的计算机系统的内存地址空间分配情况是不同的,并且内存地址空间的容量与平时所讲的内存条的容量也不是一回事。
原文地址:https://www.cnblogs.com/lingana/p/9657299.html