0
我需要编写一个汇编程序,它将两个有符号数相乘(在 二进制补码系统中)。乘数和被乘数可以是8位数据范围内的任何数字和任何符号。确保你的汇编程序是通用的。MIPS程序将两个数相乘
这是我有,但我得到的错误“程序完成运行(下降)”,我不知道为什么。
.data
str1: .asciiz "Enter a"
str2: .asciiz "Enter b"
str3: .asciiz "a*b = "
main:
li $v0, 4
la $a0, str1
syscall
li $v0, 5
syscall
add $s0, $v0, $zero
li $v0, 4
la $a0, str2
syscall
li $v0, 5
syscall
move $s1, $v0
mult $s0, $s1
mflo $t2
li $v0, 1
move $a0, $t2
syscall
li $v0, 4
la $a0, str3
syscall
li $v0, 10
syscall
哦哇完全错过了,谢谢! – smd
'mars'模拟器是宽容的。如果没有'main',它将从'.text'的第一个位置开始[不在原始代码中]。另一方面,'spim'模拟器模拟'jal main'来启动程序[并且,IIRC,'a0'是'argc','a1'是'argv'],需要'.text','。 globl main'和'main:'。没有这一切,'spim'会抱怨一个未定义的引用,或者其他的一些 –