assembly - 星形图案打印不好
问题描述
我想以这种方式打印星形图案:
****** ***** **** *** ** *
但它是这样打印的:
****** ****** ****** ****** ****** ******
有人能帮我吗?这是我的代码:
main:
daddiu $sp,$sp,-48
sd $31,40($sp)
sd $fp,32($sp)
sd $28,24($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(main)))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(main)))
sw $0,0($fp)
b .L2
nop
.L5:
li $2,6 # 0x6
sw $2,4($fp)
b .L3
nop
.L4:
li $4,42 # 0x2a
ld $2,%call16(putchar)($28)
move $25,$2
nop
lw $2,4($fp)
addiu $2,$2,-1
sw $2,4($fp)
.L3:
lw $2,4($fp)
bgez $2,.L4
nop
li $4,10 # 0xa
ld $2,%call16(putchar)($28)
move $25,$2
nop
lw $2,0($fp)
addiu $2,$2,1
sw $2,0($fp)
.L2:
lw $2,0($fp)
slt $2,$2,6
bne $2,$0,.L5
nop
nop
move $sp,$fp
ld $31,40($sp)
ld $fp,32($sp)
ld $28,24($sp)
daddiu $sp,$sp,48
j $31
nop
解决方案
嘿,可能是您在 mips 中设置循环时犯了错误
如果您将 c 程序转换为 mips,
则没有正确初始化内循环而不是正确设置内循环的限制
main:
daddiu $sp,$sp,-48
sd $31,40($sp)
sd $fp,32($sp)
sd $28,24($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(main)))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(main)))
sw $0,0($fp)
b .L2
nop
.L5:
li $2,5 # 0x5
sw $2,4($fp)
b .L3
nop
.L4:
li $4,42 # 0x2a
ld $2,%call16(putchar)($28)
move $25,$2
nop
lw $2,4($fp)
addiu $2,$2,-1
sw $2,4($fp)
.L3:
lw $3,4($fp)
lw $2,0($fp)
slt $2,$3,$2
beq $2,$0,.L4
nop
li $4,10 # 0xa
ld $2,%call16(putchar)($28)
move $25,$2
nop
lw $2,0($fp)
addiu $2,$2,1
sw $2,0($fp)
.L2:
lw $2,0($fp)
slt $2,$2,6
bne $2,$0,.L5
nop
nop
move $sp,$fp
ld $31,40($sp)
ld $fp,32($sp)
ld $28,24($sp)
daddiu $sp,$sp,48
j $31
nop
推荐阅读
- c++ - WASAPI captured packets do not align
- reactjs - Ignore certain console errors / warnings in React?
- java - java.lang.UnsatisfiedLinkError: 'long org.opencv.core.Mat.n_Mat()'
- selenium - ็退出Robot Framework中的测试
- javascript - 从一些 html/javascript 内容渲染 docfx 构建的登录页面
- geometry - 如何使用 sequelize 检查特定的 lat lng 是否位于多边形中
- python - Python调整文件夹中所有图像的大小
- google-cloud-platform - Terraform google_proejct_iam_member 给出错误 400:策略成员必须采用“
: “。, 错误的请求 - html - 为什么我的 SVG 元素没有正确遵循它的路径?
- python - python中的多个文件下载和进度条更新