bss段的困惑

太虚野老 2017-10-25 02:34:58
我在64位NASM中定义了非初始化数据:
section .bss

buffer: resb 64 ; reserve 64 bytes
wordvar: resw 1 ; reserve a word
realarray: resq 10 ; array of ten reals
ymmval: resy 1

但是在IDA中看不到我定义的非初始化数据:

也看不到bss段,在IDA中将bss段放到了data段内。
我定义了4个变量,这里只显示了一个,而且大小也不对。
这是为什么?
...全文
800 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2017-10-25
  • 打赏
  • 举报
回复
这样看不出来吧。首先,源文件里的 section 和执行程序里的 section 及 segment 不是一一对应的。象 .const 及其它不会被修改的资源定义等都可能被归入 .rdata 段;普通数据定义,有预定义的和无预置数据的,都在 .data 段,只是无预置数据的在后面部分且执行程序里不给其安排空间,只在载入内存分配空间,这个体现在段的虚拟大小和物理大小可能不一致,甚至物理大小为 0 的情况(全无预置数据)。
定义了 4 个,这里只显示一个,那是你代码里没有对它们的引用吧;每个变量都使用下,重新创建执行程序再 ida 看看,就应该不一样了。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧