注册 登录
编程论坛 汇编论坛

使用MARS软件,输入 1 2,报错Runtime exception at 0x004000bc: invalid integer input (syscal

康明贤 发布于 2020-07-04 12:17, 6456 次点击
程序代码:
.data
S17: .asciiz "the bigger one is:"
.text
move $fp $sp
j main
max:
lw $t8 0($sp)
subi $sp $sp 8
sw $t8 0($sp)
addi $sp $sp 12
lw $t8 0($sp)
subi $sp $sp 8
sw $t8 0($sp)
addi $sp $sp 12
move $t8 $fp
move $fp $sp
subi $fp $fp 4
sw $t8 0($fp)
sw $ra -4($fp)
subi $sp $sp 20
lw $s0 -8($fp)
lw $s1 -12($fp)
bge $s0 $s1 LABEL3
move $t0 $zero
j LABEL4
LABEL3:
li $t0 1
LABEL4:
beq $t0 $zero LABEL0
move $v0 $s0
sw $s0 -8($fp)
sw $s1 -12($fp)
lw $ra -4($fp)
addi $sp $fp 4
lw $fp 0($fp)
jr $ra
LABEL0:
main:
move $t8 $fp
move $fp $sp
subi $fp $fp 4
sw $t8 0($fp)
sw $ra -4($fp)
subi $sp $sp 20
lw $s0 -8($fp)
lw $s1 -12($fp)
lw $s2 -16($fp)
li $v0 5
syscall
move $s0 $v0
li $v0 5
syscall
move $s1 $v0
subi $sp $sp 4
sw $s0 0($sp)
subi $sp $sp 4
sw $s1 0($sp)
sw $s0 -8($fp)
sw $s1 -12($fp)
sw $s2 -16($fp)
jal max
lw $s0 -8($fp)
lw $s1 -12($fp)
lw $s2 -16($fp)
move $s2 $v0
la $a0 S17
li $v0 4
syscall
move $a0 $s2
li $v0 1
syscall
li $v0 10
syscall
3 回复
#2
Valenciax2020-07-04 18:44
运行出错?
提示说出现一个不合法的整数输入,跟踪一下或者看看参数有没有问题吧
#3
康明贤2020-07-04 20:29
回复 2楼 Valenciax
谢谢您。编译器生成目标语言是MIPS,然后用MARS跑的,我是直接输入的1 2,然后报出类型错误。
#4
康明贤2020-07-04 20:34
回复 2楼 Valenciax
错误提示:
Assemble: assembling E:\BYYL\byqwhole\after_target.asm

Assemble: operation completed successfully.

Go: running after_target.asm

Error in E:\BYYL\byqwhole\after_target.asm line 53: Runtime exception at 0x004000dc: invalid integer input (syscall 5)

Go: execution terminated with errors.
1