assembly 星星图案打印不好

fdbelqdn  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(166)

我想以这种方式打印星星图案:

  1. ******
  2. *****
  3. ****
  4. ***
  5. **
  6. *

但它是这样打印的:

  1. ******
  2. ******
  3. ******
  4. ******
  5. ******
  6. ******

有人能帮我吗?这是我的密码:

  1. main:
  2. daddiu $sp,$sp,-48
  3. sd $31,40($sp)
  4. sd $fp,32($sp)
  5. sd $28,24($sp)
  6. move $fp,$sp
  7. lui $28,%hi(%neg(%gp_rel(main)))
  8. daddu $28,$28,$25
  9. daddiu $28,$28,%lo(%neg(%gp_rel(main)))
  10. sw $0,0($fp)
  11. b .L2
  12. nop
  13. .L5:
  14. li $2,6 # 0x6
  15. sw $2,4($fp)
  16. b .L3
  17. nop
  18. .L4:
  19. li $4,42 # 0x2a
  20. ld $2,%call16(putchar)($28)
  21. move $25,$2
  22. nop
  23. lw $2,4($fp)
  24. addiu $2,$2,-1
  25. sw $2,4($fp)
  26. .L3:
  27. lw $2,4($fp)
  28. bgez $2,.L4
  29. nop
  30. li $4,10 # 0xa
  31. ld $2,%call16(putchar)($28)
  32. move $25,$2
  33. nop
  34. lw $2,0($fp)
  35. addiu $2,$2,1
  36. sw $2,0($fp)
  37. .L2:
  38. lw $2,0($fp)
  39. slt $2,$2,6
  40. bne $2,$0,.L5
  41. nop
  42. nop
  43. move $sp,$fp
  44. ld $31,40($sp)
  45. ld $fp,32($sp)
  46. ld $28,24($sp)
  47. daddiu $sp,$sp,48
  48. j $31
  49. nop
s2j5cfk0

s2j5cfk01#

嘿,可能是你正在做错误的设置循环在mips
未正确初始化内部循环
如果你正在转换c程序到mips比正确设置的限制内循环

  1. main:
  2. daddiu $sp,$sp,-48
  3. sd $31,40($sp)
  4. sd $fp,32($sp)
  5. sd $28,24($sp)
  6. move $fp,$sp
  7. lui $28,%hi(%neg(%gp_rel(main)))
  8. daddu $28,$28,$25
  9. daddiu $28,$28,%lo(%neg(%gp_rel(main)))
  10. sw $0,0($fp)
  11. b .L2
  12. nop
  13. .L5:
  14. li $2,5 # 0x5
  15. sw $2,4($fp)
  16. b .L3
  17. nop
  18. .L4:
  19. li $4,42 # 0x2a
  20. ld $2,%call16(putchar)($28)
  21. move $25,$2
  22. nop
  23. lw $2,4($fp)
  24. addiu $2,$2,-1
  25. sw $2,4($fp)
  26. .L3:
  27. lw $3,4($fp)
  28. lw $2,0($fp)
  29. slt $2,$3,$2
  30. beq $2,$0,.L4
  31. nop
  32. li $4,10 # 0xa
  33. ld $2,%call16(putchar)($28)
  34. move $25,$2
  35. nop
  36. lw $2,0($fp)
  37. addiu $2,$2,1
  38. sw $2,0($fp)
  39. .L2:
  40. lw $2,0($fp)
  41. slt $2,$2,6
  42. bne $2,$0,.L5
  43. nop
  44. nop
  45. move $sp,$fp
  46. ld $31,40($sp)
  47. ld $fp,32($sp)
  48. ld $28,24($sp)
  49. daddiu $sp,$sp,48
  50. j $31
  51. nop
展开查看全部

相关问题