我正在使用MIPS并编写了一个程序,该程序接受用户整数输入并将值存储在一个数组中,该数组稍后将以特定格式打印出来。
内存声明为:
point_array:
.align 2
.space 1024
我还使用.align 4
运行程序,并以完全相同的方式将值存储在内存中。我不认为我完全掌握.align
的效果,并且想知道为什么将内存与2和4对齐会产生相同的结果。
答案 0 :(得分:1)
“对齐”表示下一个地址必须是2 ^ n的倍数。 “.align”将插入一些虚拟字节来实现此目的。
示例:如果在地址0x123400F处插入“.align 4”指令,则插入一个字节; “.align 1”也会插入一个字节。
但是,如果您使用地址0x1234012处的两条指令,则“.align 1”将不执行任何操作,而“.align 4”将插入14个字节。