内存段
我们已经讨论了汇编程序的三个部分。这些部分也代表各种内存段。有趣的是,如果将section关键字替换为segment,则会得到相同的结果。尝试以下代码-
segment .text ;code segment
global _start ;must be declared for linker
_start: ;tell 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
segment .data ;data segment
msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string
尝试一下
编译并执行上述代码后,将产生以下结果-