MIPS汇编语言乘法

时间:2013-02-24 08:39:47

标签: assembly mips

我打算将设备屏幕的数量写成乘法。

cout<<"Height of the device screen: 960 "<<endl;
cout<< "Width of the device screen: 640 "<<endl;
int result;
result=960*640;
cout<<"The result of the Iphone 4S in pixel: "<<result;

就像上面的c ++代码一样,但我真的不确定我的做法是对还是错。我需要有人来帮助我。 MIPS汇编语言对我来说真的很新.`

.data
str1: .asciiz "Height of the device screen: 960 "
str2: .asciiz "Width of the device screen: 640 "
str3: .asciiz "The result of the Iphone 4S in pixel: "
newline: .asciiz "\n"

.text

main:
li $v0,4 #system call code for print string
la $a0,str1 #address of str1
syscall #print str1

#get the first number from the user, put into $s0
li $v0,960 #system call for read input
syscall #read integer into $v0 from console.

move $s0,$v0 #move the number read into $s0

#read input string for str2
li $v0,4  #system call code for print string
la $a0,str2 #address of str2
syscall #print str2

#get the second number from the user, put into $s1
li $v0,640 #system call for read input
syscall #read integer into $v0 from console.

move $s1,$v0 #move the number read into $s0

#do the calculation 
mul $s2,$s0,$s1 # s2 is the register to store $s0 and $s1 from the user input.

#read print string for st3
li $v0,4 #system call code for print string
la $a0,str3 #address of str3
syscall

#print width*height
li $v0,1
move $a0,$s2 #move the result of multiplication into $a0 to print
syscall
exist

1 个答案:

答案 0 :(得分:1)

li $v0,960 #system call for read input
syscall #read integer into $v0 from console.
# ...
#get the second number from the user, put into $s1
li $v0,640 #system call for read input
syscall #read integer into $v0 from console.

960绝对不是系统调用'读'号,也不是640.请参阅操作系统文档。