Okay, das könnte eine wirklich dumme Frage sein, aber ich habe noch nicht ganz den Überblick über Assembly. Ich muss ein Programm schreiben, das die Summe einer Reihe von Zahlen berechnet. Es sollte wie so verhalten:
MIPS Constructing Loops
Enter the first integer in the series: 5
Enter the number of integers in the series: 3
Enter the offset between integers in the series: 4
The series is: 5, 9, 13.
The summation of the series is 27.
Would you like to calculate another summation (Y/N)? y
Enter the first integer in the series: 4
Enter the number of integers in the series: 5
Enter the offset between integers in the series: 27
The series is 4, 31, 58, 85, 112.
The summation of the series is 290.
Would you like to calculate another summation (Y/N)? Y
Enter the first integer in the series: -16
Enter the number of integers in the series: -22
There must be a positive number of integers in the series.
Would you like to calculate another summation (Y/N)? n
Dies ist, was ich bisher:
li $v0, 4 #put 4 in as main parameter in v0
la $a0, Q1 #syscall will print string query 1
syscall
Shop erste Ganzzahl in Serie in s0
li $v0, 5 #put 5 in as main parameter in v0
syscall #syscall will read integer from Q1
move $s0, $v0 #move integer in v0 to s0
Anfrage Anzahl der Zahlen in Serie
li $v0, 4 #put 4 in as main parameter in v0
la $a0, Q2 #syscall will print string query 2
syscall
Shop Anzahl der Zahlen in Serie in s1
li $v0, 5 #put 5 in as main parameter in v0
syscall #syscall will read integer from Q2
move $s1, $v0 #move integer in v0 to s1
Anfrage von ganzen Zahlen Offset
li $v0, 4 #put 4 in as main parameter in v0
la $a0, Q3 #syscall will print string query 3
syscall
Shop Offset von ganzen Zahlen in s2
li $v0, 5 #put 5 in as main parameter in v0
syscall #syscall will read integer from Q3
move $s2, $v0 #move integer in v0 to s1
Set Zähler
li $s3, 1 #Set counter to zero
li $t0, 1 #iterator count is in t0
Ich bin nur neugierig, wo ich meine Schleife starten soll? Und wie genau würde ich die gesamte Serie drucken? Jeder Rat würde sehr geschätzt werden.
Ich denke, ich machte es komplizierter als es sein musste. Wenn der Zähler gleich der Anzahl der Ints in der Reihe wäre, würde er zur Ausgangsschleife gehen. Die Struktur, nach der ich suchte, war etwas wie: für i im Bereich (x), first_int + (i * offset). Ich habe auch total vergessen, eine Schnur für das Komma zu setzen! Danke für die Hilfe. – Bri
@Bri in der Regel "es komplizierter zu machen" ist ein Zeichen dafür, dass man zu schnell in Code schreibt. Stellen Sie zunächst sicher, dass Sie einen guten Überblick über die verwendeten Algorithmen und Kerndaten der Aufgabe haben (irreduzibles Grunddaten-Set, bei dem das Entfernen von Werten die Aufgabe unmöglich macht, da sie nicht abgeleitet werden kann) von den restlichen) (wie "Modell" in MVC Programmierung Design-Muster). Normalerweise folgen diese Kernwerte 1: 1 den Eingabedaten, oder nur einige mehr werden benötigt wie iteration_number/time/keyboard_event. Sammeln Sie auch Notizen zu abgeleiteten (und wie) Werten. Schreibe den Code nach ... – Ped7g
Die Arbeit mit den Assembleranweisungen ist zu langwierig und erfordert viel Aufmerksamkeit im Gehirn, nur um die richtige Instruktion in korrekter Syntax und mit korrekten Registern zu verwenden. Daher ist es in der Regel besser, zuerst in der Muttersprache über die Aufgabe nachzudenken. eine Zeit lang, in einfachere Schritte aufzuspalten, und nach irgendwelchen Redundanzen/Ähnlichkeiten zu suchen, um sie als Subroutinen zu extrahieren/etc. – Ped7g