【发布时间】:2016-04-13 14:27:21
【问题描述】:
汇编中流行的 hello world 程序在 .data 部分中定义了字符串“Hello, world!”。根据本教程 (http://www.tutorialspoint.com/assembly_programming/assembly_variables.htm) db 定义了一个字节(在内存中分配一个字节)。
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 ;our dear string
len equ $ - msg ;length of our dear string
这是否意味着将为每个字符分配一个字节?如果这是正确的,那么这一行将分配 14 个字节(13 个字节用于“Hello, world!”,一个字节用于 0xa - 对吧?
【问题讨论】:
-
是的。您可以在您的汇编手册中了解这一点。
标签: variables assembly static nasm