Assembly 在mips中,如何使用两个数字的特定功能进行加法或减法?
大家好,我对mips编程还不熟悉,只是好奇mips上两个数字的加减是用什么函数实现的。如果可能的话,只需要代码。这比需要的时间长得多,例如,当您只需将值保存在$t0和$t1等寄存器中时,就可以加载和存储。此外,在使用add或sub写入v0之前,您不需要li$v0,0-目标操作数是只写的,并且可以覆盖以前存在的任何内容。汇编代码应该有解释,即要比较的伪/C代码、注释、寄存器中变量的描述。帮助OP理解,而不是简单地做作业。Assembly 在mips中,如何使用两个数字的特定功能进行加法或减法?,assembly,mips,Assembly,Mips,大家好,我对mips编程还不熟悉,只是好奇mips上两个数字的加减是用什么函数实现的。如果可能的话,只需要代码。这比需要的时间长得多,例如,当您只需将值保存在$t0和$t1等寄存器中时,就可以加载和存储。此外,在使用add或sub写入v0之前,您不需要li$v0,0-目标操作数是只写的,并且可以覆盖以前存在的任何内容。汇编代码应该有解释,即要比较的伪/C代码、注释、寄存器中变量的描述。帮助OP理解,而不是简单地做作业。 .data x: .word 30 y: .word 24 s
.data
x: .word 30
y: .word 24
sum: .word 0
subt: .word 0
promptAdd: .asciiz "The sum of X and Y is : "
promptSub: .asciiz "\nThe difference of X and Y is : "
.text
.globl main
.ent main
main:
lw $a0, x
lw $a1, y
jal Addition
sw $v0, sum
jal Subtraction
sw $v0, subt
la $a0, promptAdd
li $v0, 4
syscall
lw $a0, sum
li $v0, 1
syscall
la $a0, promptSub
li $v0, 4
syscall
lw $a0, subt
li $v0, 1
syscall
li $v0, 10
syscall
.end main
.globl Addition
.ent Addition
Addition:
li $v0, 0
add $v0, $a0, $a1
jr $ra
.end Addition
.globl Subtraction
.ent Subtraction
Subtraction:
li $v0, 0
sub $v0, $a0, $a1
jr $ra
.end Subtraction