两个数相乘的 MIPS 程序
MIPS Program to multiply two numbers
我需要编写一个汇编程序,将两个有符号数相乘(在
补码系统)。乘数和被乘数可以是8位数据范围内的任意数字,可以是任意符号。确保您的汇编程序是通用的。
这是我所拥有的,但我收到错误 "program is finished running (dropped off bottom)",我不确定为什么。
.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
您已将代码放入数据部分。在 main:
之前你应该有一个 .text
指令。您可能还需要 .globl main
。
我需要编写一个汇编程序,将两个有符号数相乘(在 补码系统)。乘数和被乘数可以是8位数据范围内的任意数字,可以是任意符号。确保您的汇编程序是通用的。
这是我所拥有的,但我收到错误 "program is finished running (dropped off bottom)",我不确定为什么。
.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
您已将代码放入数据部分。在 main:
之前你应该有一个 .text
指令。您可能还需要 .globl main
。