我的任务是将使用NASM的汇编程序转换为天然气。不幸的是,有很多不匹配的陈述。我已经转换了一些人,但我仍然有关于如何这条语句转换NASM天然气:与天然气resw对应
分钟resw 1
在此先感谢麻烦。 :)
我的任务是将使用NASM的汇编程序转换为天然气。不幸的是,有很多不匹配的陈述。我已经转换了一些人,但我仍然有关于如何这条语句转换NASM天然气:与天然气resw对应
分钟resw 1
在此先感谢麻烦。 :)
预留一个字是很容易的,它只是使用:
min .word 0
其中保留一个字,并将其设置为零。
如果你想保留一大块,说50个字,很多编译器允许这样的事情:
buff .byte 50(0)
,但我不知道是否gas
支持。它确实似乎提供类似的功能与.fill
和.space
指令:
buff1 .fill 50, 1, 0 ; count, size, value
buff2 .space 50, 0 ; count (bytes), value (defaults to 0)
有些汇编器还允许之类的东西.word ?
或.byte 50(?)
,如果你不小心设置的值。 gas
再次可能支持或不支持。
在任何情况下,您的具体示例似乎都不需要这些。
你可以尝试:
.lcomm min, 2
或
.comm min, 2
抛开空间在BSS部分两个字节(一个字)。 bss部分的要点是加载程序将分配空间并在加载时将内容设置为零,但它不会占用磁盘上文件的空间。
.lcomm
是如果您只需要从您使用.lcomm
的文件中引用min
。 comm
是如果你需要从其他文件中引用min
(所以链接器将使其可用于其他文件)。
如果你喜欢使用的数据部分,它将使零您的文件和占用的磁盘空间,然后这个,放置在数据部分,应该工作:
min:
.fill 2
气体具有' .space size,fill'指令,其中_“发出'size'字节,每个值为'fill'。size和fill都是绝对表达式,如果省略逗号和'fill',则假定'fill'为零“。_ – Michael 2014-12-03 08:30:09