基本概念:
汇编器(assembler)是一种工具程序,用于将汇编语言源程序转换为机器语言。
链接器(linker)也是一种工具程序,它把汇编器生成的单个文件组合为一个可执行程序。
调试器(debugger),使程序员可以在程序运行时,单步执行程序并检查寄存器和内存状态。
机器语言是一种数字语言, 专门设计成能被计算机处理器(CPU)理解。所有 x86 处理器都理解共同的机器语言。
汇编语言包含用短助记符如 ADD、MOV、SUB 和 CALL 书写的语句。汇编语言与机器语言是一对一的关系:每一条汇编语言指令对应一条机器语言指令。
高级语言如 Python、C++ 和 Java 与汇编语言和机器语言的关系是一对多(比如,C++ 的一条语句就会扩展为多条汇编指令或机器指令。
寄存器(register)是 CPU 中被命名的存储位置,用于保存操作的中间结果。
汇编语言可移植吗?
一种语言,如果它的源程序能够在各种各样的计算机系统中进行编译和运行,那么这种语言被称为是可移植的。例如,一个 C++ 程序,除非需要特别引用某种操作系统的库函数,否则它就几乎可以在任何一台计算机上编译和运行。Java 语言的一大特点就是,其编译好的程序几乎能在所有计算机系统中运行。
汇编语言不是可移植的,因为它是为特定处理器系列设计的。目前广泛使用的有多种不同的汇编语言,每一种都基于一个处理器系列。
对于一些广为人知的处理器系列如 Motorola 68x00、x86、SUN Sparc、Vax 和 IBM-370,汇编语言指令会直接与该计算机体系结构相匹配,或者在执行时用一种被称为微代码解释器的处理器内置程序来进行转换。
虚拟机概念是一种说明计算机硬件和软件关系的有效方法。
计算机通常可以执行用其原生机器语言编写的程序。这种语言中的每一条指令都简单到可以用相对少量的电子电路来执行。称这种语言为 L0。
存储单位:
计算机以电子电荷集合的形式在内存中保存指令和数据。用数字来表示这些内容就需要系统能够适应开 / 关或真 / 假的概念。
一个 16 位的二进制数左边的位称为最高有效位(MSB),右边的位称为最低有效位(LSB)。二进制整数可以是有符号的,也可以是无符号的。有符号整数又分为正数和负数,无符号整数默认为正数,零也被看作是正数。