要点总结:
一、数据量单位:位、字节和字
1.1 位是计算机中共最小的存储单位。每一个为可以存储一个二进制码0或者1.而字节通常由8个位组成一个存储单元。在计算机中,字节是最小的可寻址单位,这意味着CPU在使用数据时,可以以字节为单位,为每一个字节内存分配一个相应的独立地址。
1.2字的大小并不固定,注意是因为字的概念与具体的处理器或硬件体系架构直接相关,它跟位、字节这种较为通用和统一的数据量概念并不相同。一个字的大小可能是2的幂次个位,比如16位、32位、12位、27位等。
二、汇编语言
2.1在计算机编程中,汇编语言是一种低级编程语言,语言使用功能的指令与具体平台密切相关。这以为着,针对不同的CPU体系架构设计的徽标语言无法共用,也不具备可移植性。
2.2汇编代码可以经由汇编程序进行转换,从而得到二进制的可执行代码。汇编语言使用功能助记符来表示每个低级的机器指令。助记符是一类贷自然语义的符号,比如:MOV指令,它是英文单词“move”的简写,这个指令用来将一个操作数从计算机中共的某个位置移动到另一个位置。而add指令的语义就更加直观了,它用来将计算机中某个位置上的数据量累加到另一个数据量上。
2.3不同的汇编指令可以使用功能不同的参数形式。比如,就mov指令来说,对于可以使用该指令来移动的数据,它们通常会位于计算机中三个不同的位置上:
mov r/m,r
mov r,r/m
mov r/m,imm
这些指令中r表示register即:寄存器 ;m表示memory,即内存中的
某个具体位置;imm表示immediate,即直接书写在指令中共的立即数。
汇编指令由助记符组成,而汇编器则负责吧这些助记符组成的有效语法格式转换成对应的二进制机器指令。
2.4指令集中共的寄存器
寄存器有时也被称为寄存器文件。可以简单的理解为由CPU提供的一组位于芯片上的高速存储器硬件,可用于存储数据。通常来说,寄存器可以使用SRAM来实现。SRAM是一种高速随机访问存储器,他将每个为的数据存放在一个对应的“双稳态”存储器中,从而保持较强的抗干扰能力和较快的数据访问速度。在整个计算机体系架构中,寄存器拥有最快的数据访问速度和最低的延迟。
寄存器一般分为:通用目的寄存器、状态寄存器、系统寄存器、以及用于支持浮点数计算和SIMD的AVX、SSE寄存器等。
通用目的寄存器:一般用于存放程序运行过程中产生的临时数据,这些寄存器在大多数情况下都可以被当做普通寄存器使用。而在某些特殊情况下,他们可能会被用于存放指令计算结果、系统调用号,以及与栈帧相关的内存地址信息。
状态寄存器:一般用于存放与指令执行结果相关的状态信息,比如指令执行是否引起进位、计算结果是否为0等。
系统寄存器一把由操作系统使用,这些寄存器描述了与虚拟内存、中断、CPU模式等有关的信息。
|