日期:2014-05-16  浏览次数:20712 次

GNU汇编fill填充一个数据结构使得另一个数据结构全部清零
代码如下:

.fill 256,8,0
.word 0xFFFF

保存,并用as和ld编译成二进制文件
反汇编得出结果,发现.word声明的0xFFFF变为0

但是,代码改为如下:
.fill 20,8,0
.word 0xFFFF

保存,并用as和ld编译成二进制文件
反汇编得出结果,发现.word声明的0xFFFF是正确的

请问是什么原因呢?为什么fill会把word声明的数据清0了?

注: 编译用的是用以下指令
  as -o 1.o 1.S

  ld --oformat binary -o 1.bin 1.o


------解决方案--------------------
给我吧