我遇到了一个分配问题,在该分配中,我们已将这些数字放入数组中,并在不使用循环的情况下将它们添加了。我已经解决了这个问题,但是.space使我感到困惑。通过设置.space 20,我可以为5个单词腾出空间还是在做其他事情。
Run Code Online (Sandbox Code Playgroud).data array: .space 20 .text addi $s0, $zero, 2 addi $s1, $zero, 12 addi $s2, $zero, -5 addi $s3, $zero, 7 addi $s4, $zero, 4 addi $t0, $zero,0 #index initialized at 0 sw $s0,array($t0) addi $t0, $t0, 4 sw $s1,array($t0) addi $t0, $t0, 4 sw $s2,array($t0) addi $t0, $t0, 4 sw $s3,array($t0) addi $t0, $t0, 4 sw $s4,array($t0) addi $t0, $t0, 4
.space Len指令指示汇编程序保留Len字节。由于每个字都有4个字节,因此当Len为20时,您将指示汇编程序保留5个字。
例如,如果您有
.data
array: .space 20
other_data: .asciiz 'This is other data'
Run Code Online (Sandbox Code Playgroud)
然后other_data将是array地址后的20个字节。
由于MIPS中的体系结构限制,.align 2如果要逐字访问(在您的特定示例中,您不需要它,则可能还需要指示汇编器在数组标签之前对齐保留的内存())。应该已经对齐)。
| 归档时间: |
|
| 查看次数: |
19413 次 |
| 最近记录: |