новый здесь, и новый в сборке.
Я работаю над своим первым заданием, и оно кажется простым, но мне все еще не хватает понимания 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)