lnlidawei

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  430 随笔 :: 1 文章 :: 3 评论 :: 21万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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、运行结果:

 

 

 

posted on   lnlidawei  阅读(291)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示