新来的,新的组装。
我正在做我的第一个任务,看起来很简单,但我仍然缺乏对 MIPS 的理解。
我当前的问题是尝试阅读提示并打印整数。我必须在没有伪指令的情况下执行此操作(即 la、li、...),所以我只能使用 lui、add、addi、sw... 没有伪代码我会迷路,因为现在我必须调用字符串按地址,我猜是0x1001。我的另一个问题是如何移动到下一个地址?
tl;dr...必须能够计算函数 val3=$s0-$s1+$s2,其中 $s0=27、$s1=val1 和 $s2=val2 无伪指令。
这只是我的代码和英文帮助的开始部分(所以我可以理解 XD)将不胜感激)
.data #variable declaration
val1: .word 0 #0x100100000
val2: .word 0 #0x100100004
val3: .word 0 #0x100100008
prompt1: .asciiz "Mike Rosenfeld" #0x10010000c
prompt2: .asciiz "Enter a number" #0x100100010
prompt3: .asciiz "\n" #0x100100012
.space 15
.globl main
.text #instructions
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>START>>>>>>>>>>>>>>>>>>>>>>>>>>
main:
addi $s0, $zero, 5 #set command to read
#syscall #get value
addi $a0, $v0, 27 #initialize a = 27
addi $v0, $zero, 27 #set command to print
#>>>>>>>>>>>>>>>>>>>>>DEFINE VARIABLES>>>>>>>>>>>>>>>>>>>>>>
#lw $t0, val1 #input value #1
lui $t0, 0x1001 #store value #1
addi $a0, $zero, 4 #call string prompt 1
syscall
addi $v0, $zero, 5
syscall
sw $v0, 0($t0)