汇编语言 基本语法
-
基本语法
汇编程序可以分为三个段-- data段
- bss 段
- text段
-
data段
数据(data)段被用于声明初始化的数据或常数。此数据在运行时不会更改。您可以在段中声明各种常量值,文件名或缓冲区大小等。声明数据段的语法是- -
bss 段
在bss段用于声明变量。声明bss段的语法是- -
text段
代码段被用于保持实际的代码。该段必须以全局声明_start开头,该声明告诉内核程序从何处开始执行。声明代码段的语法是- -
注释
汇编语言注释以分号(;)开头。它可以包含任何可打印字符,包括空格。它可以单独出现在一行上,例如-或者,与指令在同一行上,例如- -
汇编语言声明
汇编语言程序包含三种类型的语句-- 可执行指令或说明
- 汇编程序指令或伪操作
- 宏
可执行指令或简单的指令告诉处理器做什么。每个指令由一个操作码(操作码)组成。每个可执行指令生成一个机器语言指令。该汇编指令或伪操作讲述了装配过程的各方面的汇编。这些是不可执行的,不会生成机器语言指令。宏基本上是一种代码替换机制。 -
汇编语言语句的语法
汇编语言语句每行输入一个语句。每个语句遵循以下格式-方括号中的字段是可选的。基本指令包括两段,第一段是要执行的指令(或助记符)的名称,第二段是命令的操作数或参数。以下是一些典型汇编语言语句的示例- -
-
在NASM中编译和链接汇编程序
确保已在PATH环境变量中设置了nasm和ld二进制文件的路径。现在,执行以下步骤来编译和链接上述程序-- 使用代码编辑器输入以上代码,并将其另存为
hello.asm
。 - 确保您与保存
hello.asm
的目录位于同一目录中。 - 要组装程序,请键入
nasm -f elf hello.asm
并回车 - 如果有任何错误,现阶段将提示您有关错误。否则,将创建名为h
ello.o
的程序的目标文件。 - 要链接目标文件并创建一个名为hello的可执行文件,请键入
ld -m elf_i386 -s -o hello hello.o
- 通过键入
./hello
执行程序
如果您正确完成了所有操作,则会显示“Hello, world!” 屏幕上。 - 使用代码编辑器输入以上代码,并将其另存为