Bootstrap

系统架构设计师教程 第二章 计算机系统基础知识-2.6 计算机语言

在这里插入图片描述

2.6 计算机语言

2.6.1 计算机语言的组成

   计算机语言主要由一套指令组成,而这种指令一般包括表达式、流程控制和集合三大部分内容。

表达式:又包含变量、常量、字面量和运算符。
流程控制:有分支、循环、函数和异常
集合:包括字符串、数组、散列表等数据结构

2.6.2 计算机语言的分类

早期:机器语言、汇编语言和高级语言。
近年来:涌现出了众多其他语言,如:建模语言、形式化语言。

2.6.2.1 机器语言

   机器语言是一种由二进制代码组成的计算机程序语言,用于直接控制计算机硬件执行特定任务。机器语言是计算机能够理解和执行的唯一一种语言,它对应于计算机的指令集架构和硬件组件。

优点:是可以被计算机直接理解和执行,执行速度快、占用内存少。
缺点

编程烦琐,且不易学、不易记、不易用、不易调试和维护;
每台计算机的指令系统往往各不相同,造成了重复编程工作。

tips:机器语言是给机器看的

2.6.2.2 汇编语言

2.6.2.2.1 定义

   汇编语言是一种低级编程语言,用于编写计算机程序。它直接操作计算机的硬件资源,包括处理器、内存和输入输出设备。汇编语言使用助记符和指令来表示机器指令,开发者需要了解硬件架构和指令集才能编写有效的汇编语言程序。虽然汇编语言编写起来比高级语言更复杂和繁琐,但它可以实现更高效、更灵活的程序,常用于嵌入式系统开发和对性能要求极高的应用程序开发中。
   简而言之,汇编语言是机器语言的符号化描述,仍是面向机器的程序设计语言。

2.6.2.2.2 优缺点

   优点:效率高,程序精炼且质量高。
   缺点:依赖于机器硬件,通用性差,要求设计人员详细了解硬件结构。

2.6.2.2.3 汇编语言的语句

汇编语言的语句可以分为指令语句、伪指令语句和宏指令语句。

2.6.2.2.3.1 指令语句
指令是汇编语言中用于控制计算机硬件执行具体操作的基本单位。
指令通常对应着机器语言中的一条具体命令,用于执行算术运算、逻辑运算、数据传输、控制流等操作。
每一条指令语句在汇编时都要产生一个可供CPU执行的机器目标代码,它又叫可执行语句。

指令语句的一般格式为:
在这里插入图片描述
(1)标号或标签(Label):可选,用于标识指令的地址,便于跳转和引用。教材原文叫名字而不是标签,我们一般不这么叫,因为它确实是标号或标签而不是指令的名字。在转移指令或子程序调用指令中,可直接引用这个标号。

ADDR1: MOV AL,100

(2)指令助词符:就是操作码(Opcode),如 MOV, ADD, SUB 等,代表要执行的操作。
(3)操作数(Operand):指定了指令操作的对象,可以是寄存器、内存地址或立即数等。
(4)注释(Comment):以分号(;)开始,用于解释代码的功能或提供其他信息,汇编器会忽略注释部分。

指令语句的常见例子:

MOV AX, 5      ; 将数据5移动到寄存器AX中
ADD BX, AX      ; 将寄存器AX的值加到寄存器BX中
SUB CX, DX      ; 从寄存器CX中减去寄存器DX的值
AND AX, BX      ; 将寄存器AX和寄存器BX中的值进行与运算
OR AX, CX       ; 将寄存器AX和寄存器CX中的值进行或运算
XOR AX, BX      ; 将寄存器AX和寄存器BX中的值进行异或运算
CMP AX, BX      ; 比较寄存器AX和寄存器BX中的值
JMP Label       ; 无条件跳转到标签Label处
JE Label        ; 若相等则跳转到标签Label处
JNE Label       ; 若不相等则跳转到标签Label处
JG Label        ; 若大于则跳转到标签Label处
JGE Label       ; 若大于或等于则跳转到标签Label处
JL Label        ; 若小于则跳转到标签Label处
JLE Label       ; 若小于或等于则跳转到标签Label处
2.6.2.2.3.2 伪指令语句
伪指令不是真正的机器指令,而是用于告诉汇编器如何汇编程序的一些指示或命令。
伪指令在汇编过程中起作用,但不会被翻译成机器码执行。它们主要用于定义变量、分配存储空间、设置程序段等。
常见的伪指令包括:ORG(设置程序的起始地址)、DB(定义字节)、DW(定义字)、EQU(等值定义)等。
伪指令还可以用于条件汇编、宏定义等高级功能,提高程序的可读性和可维护性。

语法:

[标签:] 伪指令助记符 [参数] [,参数]... [;注释]

(1)标签:与指令语句同。
(2)伪指令助记符:伪指令语句的必选项,它规定了汇编程序所要完成的具体操作。
(3)参数:根据伪指令的不同,可能需要提供不同的参数,如数据值、地址表达式等。

示例:

1. ORG 1000 
;