nasm:变量的使用(bss_section)
一、bss变量的说明
1、在bss段内,“变量名”代表“内存地址”。
2、bss段的变量赋值: mov [bss_var_name], register
1 section .text
2 global _start
3
4 _start:
5 mov eax, 'e'
6 mov [s], eax
7
8
9 section .bss
10 s resb 1
二、源码和运行结果
1、源码
1 ; file_name = nasm_bss_section.asm
2
3
4
5
6 section .text
7 global _start ; 必须声明链接器 (ld)
8
9 _start: ; 告诉链接器入口点
10
11 mov eax, 'e' ; 将字符‘e’,放入寄存器eax
12 mov [s], eax ; 【重点内容: 使用变量s(bss段)】 将‘e’,放入内存[s]
13
14 mov edx, 1 ; 消息长度
15 mov ecx, s ; 消息内容; 【重点内容: 使用变量s(bss段)】
16 mov ebx, 1 ; 文件描述 (stdout)
17 mov eax, 4 ; 系统调用号 (sys_write)
18 int 0x80 ; 调用内核
19
20 mov eax, 1 ; 系统调用号 (sys_exit)
21 int 0x80 ; 调用内核
22
23
24 section .data
25 choice db 'y'
26
27
28 section .bss
29 s resb 1 ; 定义1个字节的变量s,s未初始化
2、运行结果:
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章的版权归属于【原创作者】; 转载或引用时请【保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/17059045.html