Assembly NASM到气体:气体中resw的对应物
我的任务是将使用NASM的汇编程序转换为GAS。不幸的是,有很多不匹配的语句。我已经转换了其中的一些语句,但我仍然无法转换此语句Assembly NASM到气体:气体中resw的对应物,assembly,nasm,gnu-assembler,Assembly,Nasm,Gnu Assembler,我的任务是将使用NASM的汇编程序转换为GAS。不幸的是,有很多不匹配的语句。我已经转换了其中的一些语句,但我仍然无法转换此语句 min resw 1 使用初始值设定项0保留一个单词非常简单: min: .word 0 对于x86,.字为16位。对于其他大小:.字节、.长、.四元组 如果您想保留一大块,比如说50个单词,请使用.fill或.space指令: buff1: .fill 50, 1, 0 # count, size, value buff2: .sp
min resw 1
使用初始值设定项0保留一个单词非常简单:
min: .word 0
对于x86,.字为16位。对于其他大小:.字节、.长、.四元组
如果您想保留一大块,比如说50个单词,请使用.fill或.space指令:
buff1: .fill 50, 1, 0 # count, size, value
buff2: .space 50, 0 # count (bytes), value (defaults to 0)
对于重复模式宽度大于1字节的初始值设定项,采用值和长度:
int_array: .dcb.l 50, 12345 # 32-bit integer 12345 repeated 50 times
使用初始值设定项0保留一个单词非常简单:
min: .word 0
对于x86,.字为16位。对于其他大小:.字节、.长、.四元组
如果您想保留一大块,比如说50个单词,请使用.fill或.space指令:
buff1: .fill 50, 1, 0 # count, size, value
buff2: .space 50, 0 # count (bytes), value (defaults to 0)
对于重复模式宽度大于1字节的初始值设定项,采用值和长度:
int_array: .dcb.l 50, 12345 # 32-bit integer 12345 repeated 50 times
你可以试试:
.lcomm min, 2
或
要为两个字节留出空间,请在bss部分中保留一个字。bss部分的要点是加载程序将分配空间并在加载时将内容设置为零,但它不会占用磁盘上文件的空间
.lcomm是指仅需要从使用.lcomm的文件中引用min。comm是指如果您需要从其他文件引用min,那么链接器将使其可用于其他文件
如果您更喜欢使用data部分,它会将零放在文件中并占用磁盘空间,那么放置在data部分中的这个应该可以工作:
min:
.fill 2
你可以试试:
.lcomm min, 2
或
要为两个字节留出空间,请在bss部分中保留一个字。bss部分的要点是加载程序将分配空间并在加载时将内容设置为零,但它不会占用磁盘上文件的空间
.lcomm是指仅需要从使用.lcomm的文件中引用min。comm是指如果您需要从其他文件引用min,那么链接器将使其可用于其他文件
如果您更喜欢使用data部分,它会将零放在文件中并占用磁盘空间,那么放置在data部分中的这个应该可以工作:
min:
.fill 2
gas有一个.space size,fill指令,它发出大小字节,每个字节的值为fill。大小和填充都是绝对表达式。如果省略逗号和fill,则假定fill为零。gas有一个.space size,fill指令,该指令发出大小字节,每个字节的值为fill。大小和填充都是绝对表达式。如果省略逗号和fill,则假定fill为零。