首页 > 解决方案 > 获取地址未在字边界 0x00000002 上对齐

问题描述

我试图从结构中加载 .word,但是当我尝试运行程序时,它显示错误“获取地址未在字边界 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

标签: assemblymips

解决方案


推荐阅读