nasm汇编之基础语法 Basic Syntax
一个汇编程序可以被分成三个sections:
- data section
- bss section
- text section
data section
data 部分用于声明初始化的数据或常量。该数据在运行时不会更改。您可以在本节中声明各种常量值,文件名或缓冲区大小等
section .data
bss section
bss部分用于声明变量。声明bss部分的语法是
section .bss
text section
text部分用于保留实际代码。此section必须以全局声明_start开头,该声明告诉内核程序从何处开始执行。
section .text
    global _start
_start:
注释
; this is a comment
mov a, b  ; move b to a
statements
[label] mnemonic [operands] [;comment]
hello world示例
section	.text
   global _start     ;must be declared for linker (ld)
	
_start:	            ;tells linker entry point
   mov	edx,len     ;message length
   mov	ecx,msg     ;message to write
   mov	ebx,1       ;file descriptor (stdout)
   mov	eax,4       ;system call number (sys_write)
   int	0x80        ;call kernel
	
   mov	eax,1       ;system call number (sys_exit)
   int	0x80        ;call kernel
section	.data
msg db 'Hello, world!', 0xa  ;string to be printed
len equ $ - msg     ;length of the string
