ここでは新しく、アセンブリは初めてです。
私は最初の課題に取り組んでおり、単純に見えますが、まだ MIPS の理解が不足しています。
私の現在の問題は、プロンプトを読み取って整数を出力しようとすることです。疑似命令 (つまり、la、li、...) を使用せずにこれを行う必要があるため、lui、add、addi、sw しか使用できません。私が推測しているアドレスは0x1001です。もう 1 つの質問は、次のアドレスに移動するにはどうすればよいですか?
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)