安装和环境设置
在学习过程中,我们需要使用 NASM 汇编器,因为它免费、有据可查,并且可以在 Linux 和 Windows 上使用
首先要验证是否已安装 NASM,可以使用下面的方法验证:
打开 Linux 终端
输入 whereis nasm 并按 Enter
如果已安装会出现类似 nasm: /usr/bin/nasm 的行,否则只能看到 nasm:
如果没有安装,就需要安装 NASM。
我的机器是 centos7 的虚拟机,我是直接在命令行中进行安装的,安装步骤如下:
打开终端并以 root 用户身份登录
运行以下命令更新 yum 软件包列表:
yum update
运行以下命令安装 NASM:
yum install nasm
过程中的询问,输入 y 并按 Enter 键继续
等待安装完成后,使用以下命令验证是否成功安装:
nasm -v
基本语法
汇编程序可以分为三个部分:
数据部分(data section)
未初始化数据部分(bss section)
文本部分(text section)
data 部分
数据部分通常用于存储程序中需要初始化的数据。这可以包括常量、变量和其他静态数据。这个部分的数据在程序运行之前被初始化,并且在整个程序的执行过程中保持不变。
声明数据部分的语法如下:
section .data
bss 部分
未初始化数据部分用于存储程序中未初始化的全局和静态变量。与数据部分不同,bss 部分的变量在程序加载时不会被初始化,而是在运行时由系统初始化为零或空值。这样可以节省可执行文件的大小,因为在文件中只需要记录这些变量的名称和大小,而不需要存储它们的实际值。
声明 bss 部分的语法如下:
section .bss
text 部分
文本部分包含程序的实际代码。这是程序的主要执行部分,包括机器指令和指令的地址。在这个部分,汇编程序将源代码翻译成机器可执行的指令,使得计算机能够按照特定的算法执行相应的操作。
声明 文本部分的语法如下:
section .text
注释
汇编语言中的注释以分号;开头。注释可以独立一行存在,也可以与指令在同一行。例如:
; This is a line of comments
add eax, ebx ; adds ebx to eax
汇编语言语句
汇编语言程序由三种类型的语句组成:
可执行指令:告诉处理器要执行的操作,每条指令包括操作码和操作数
汇编器指令或伪操作:用于影响汇编过程的方面,它们不会生成机器语言指令
宏:一种文本替换机制
|