首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NASM TO GAS:相当于GAS中的resw

NASM TO GAS:相当于GAS中的resw
EN

Stack Overflow用户
提问于 2014-12-03 16:16:27
回答 2查看 277关注 0票数 1

我的任务是将使用NASM的汇编程序转换为GAS。不幸的是,有很多不匹配的语句。我已经转换了其中的一些,但是我仍然在如何转换这个语句上遇到问题。

代码语言:javascript
复制
min resw 1
EN

回答 2

Stack Overflow用户

发布于 2014-12-03 16:23:11

保留一个单词(初始化器为0)非常简单:

代码语言:javascript
复制
min:    .word    0

对于x86,.word是16位的。适用于其他尺寸:.byte.long.quad

如果你想保留一大块,比如说50个单词,使用.fill.space指令:

代码语言:javascript
复制
buff1:  .fill    50, 1, 0     # count, size, value
buff2:  .space   50, 0        # count (bytes), value (defaults to 0)

对于重复模式大于1字节的初始化器,.dcb.size接受一个值和长度:

代码语言:javascript
复制
int_array:  .dcb.l  50, 12345       # 32-bit integer 12345 repeated 50 times
票数 2
EN

Stack Overflow用户

发布于 2014-12-03 16:36:02

您可以尝试:

代码语言:javascript
复制
.lcomm min, 2

代码语言:javascript
复制
.comm min, 2

在bss段中留出两个字节(一个字)的空间。bss部分的要点是,加载程序将分配空间,并在加载时将内容设置为零,但它不会占用磁盘上文件的空间。

如果您只需要从使用min的文件内部引用.lcomm,则使用.lcomm。如果您需要从其他文件引用min (这样链接器将使其可用于其他文件),则使用comm

如果您更喜欢使用数据部分,这将在文件中放置零并占用磁盘空间,那么放在数据部分中应该是可行的:

代码语言:javascript
复制
min:
    .fill 2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27266676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档