Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 提取地址在字边界0x00000002上未对齐_Assembly_Mips - Fatal编程技术网

Assembly 提取地址在字边界0x00000002上未对齐

Assembly 提取地址在字边界0x00000002上未对齐,assembly,mips,Assembly,Mips,我试图从一个结构中加载一个.word,但当我试图运行该程序时,它显示了错误“fetchaddress not aligned on word boundary 0x00000002”。我不明白,因为我看到一个朋友的代码也是一样的,这对她很有用。代码使用以下结构: .data pantalla: .word 0 .word 0 .space 1024 campo: .word 0 .word 0 .space 1

我试图从一个结构中加载一个.word,但当我试图运行该程序时,它显示了错误“fetchaddress not aligned on word boundary 0x00000002”。我不明白,因为我看到一个朋友的代码也是一样的,这对她很有用。代码使用以下结构:

    .data   

pantalla:
    .word   0
    .word   0
    .space  1024

campo:
    .word   0
    .word   0
    .space  1024

pieza_actual:
    .word   0
    .word   0
    .space  1024

pieza_actual_x:
    .word 0

pieza_actual_y:
    .word 0

imagen_auxiliar:
    .word   0
    .word   0
    .space  1024

pieza_jota:
    .word   2
    .word   3
    .ascii  "\0#\0###\0\0"
    .space  1016

pieza_ele:
    .word   2
    .word   3
    .ascii  "#\0#\0##\0\0"
    .space  1016

pieza_barra:
    .word   1
    .word   4
    .ascii  "####\0\0\0\0"
    .space  1016

pieza_zeta:
    .word   3
    .word   2
    .ascii  "##\0\0##\0\0"
    .space  1016

pieza_ese:
    .word   3
    .word   2
    .ascii  "\0####\0\0\0"
    .space  1016

pieza_cuadro:
    .word   2
    .word   2
    .ascii  "####\0\0\0\0"
    .space  1016

pieza_te:
    .word   3
    .word   2
    .ascii  "\0#\0###\0\0"
    .space  1016
(它们不是我的,这些是老师们创造的结构)。这是显示错误的函数,更具体地说是粗体

imagen_copy:
    addiu   $sp,$sp,-4
    sw  $ra,0($sp)
    move    $t6,$a0     #figura 1
    move    $t7,$a1     #figura 2
    **lw    $t0,0($t6)  #anchura pieza 1
    lw  $t1,0($t6)  #altura pieza 1
    lw  $t2,0($t7)  #anchura pieza 2
    lw  $t3,0($t7)  #altura pieza 2**
    
    li  $t4,0       #variable y=0
For_1_copy:
    bge $t4,$t3,fin_for_1_copy
    li  $t5,0       #variable x=0
For_2_copy:
    bge $t5,$t2,fin_for_2_copy
    
    move    $a0,$t7
    move    $a1,$t5
    move    $a2,$t4     #entradas de la función
    
    addiu   $sp,$sp,-36 #9*4=36
    sw  $t0,0($sp)
    sw  $t1,4($sp)
    sw  $t2,8($sp)
    sw  $t3,12($sp)
    sw  $t4,16($sp)
    sw  $t5,20($sp)
    sw  $t6,24($sp)
    sw  $t7,28($sp)
    sb  $t8,32($sp)
    
    jal imagen_get_pixel
    
    lw  $t0,0($sp)
    lw  $t1,4($sp)
    lw  $t2,8($sp)
    lw  $t3,12($sp)
    lw  $t4,16($sp)
    lw  $t5,20($sp)
    lw  $t6,24($sp)
    lw  $t7,28($sp)
    lb  $t8,32($sp)
    addiu   $sp,$sp,36
    
    move    $a0,$t6
    move    $a1,$t5
    move    $a2,$t4
    move    $a3,$t8
    
    addiu   $sp,$sp,-36
    sw  $t0,0($sp)
    sw  $t1,4($sp)
    sw  $t2,8($sp)
    sw  $t3,12($sp)
    sw  $t4,16($sp)
    sw  $t5,20($sp)
    sw  $t6,24($sp)
    sw  $t7,28($sp)
    sb  $t8,32($sp)
    
    jal imagen_set_pixel
    
    lw  $t0,0($sp)
    lw  $t1,4($sp)
    lw  $t2,8($sp)
    lw  $t3,12($sp)
    lw  $t4,16($sp)
    lw  $t5,20($sp)
    lw  $t6,24($sp)
    lw  $t7,28($sp)
    lb  $t8,32($sp)
    addiu   $sp,$sp,36
    
    addiu   $t5,$t5,1
    j   For_2_copy
fin_for_2_copy:
    addiu   $t4,$t4,1
    j   For_1_copy
fin_for_1_copy:
    lw  $ra,0($sp)
    addiu   $sp,$sp,4
    jr  $ra

这只是意味着数据未与正确的“组”大小对齐,请尝试将所有
.space 1016
更改为
.space 1024
。您可能在需要指针的地方使用了一个小整数<代码>2不太可能是地址,除非您将MARS配置为将.data节从地址0开始。即使是这样,你也有一个<代码>。Word 0 首先,所以地址在你的第一个单词的中间。单词是正确的。调整,直到它们对齐。