2016-05-08 10 views
0

Das ist, was ich habe, so weit:LC3 Wie drucke ich Benutzereingaben auf den Bildschirm?

.orig x3000 

Lea r0, EnterString    
puts      
LOOP      
getc      

add r1, r0, -10   ;subtract 10 to identified if enter is pressed 
brz OUTSIDE    ;if yes, go out of the loop 

out     
brnzp LOOP    

OUTSIDE     
Lea r1, InputString 
puts 

Lea r0, EnterString 
out 
Halt      

EnterString .stringz "Please enter a string: " 
InputString .stringz "\nThe text you have typed is: " 

.end 

Ich versuche, eine Benutzereingabe von bis zu 99 Zeichen zu haben und es dann drucken, aber nach, wenn ich versuche und Druck, was ist es druckt nur einige seltsame Boxen eingegeben worden ist, nachdem Der InputString "\ nDer Text, den Sie eingegeben haben, wird:" wird gedruckt.

Ich denke, es hat etwas mit mir zu tun, vielleicht versehentlich meine EnterString? r0?

Bin ich kurz davor, sie zu sortieren?

Ich wollte einen Screenshot setzen, aber ich kann nicht, weil meine Reihen zu niedrig sind.

Antwort

0

Ihr allgemeiner Ansatz ist nicht korrekt. Hier ist, was Sie jetzt haben:

Print out welcome string 
Get character 
If character is a newline, exit loop, otherwise get another character 
Print out "your string is" 
Output (incorrectly) welcome string again. 

Alle PUTS tut, ist die effektive Adresse in r0 gespeichert zu nehmen und jedes Zeichen in es druckt, einen nach dem anderen, bis er einem ‚\ 0‘ erreicht. Alle GETC ist es, ein einzelnes Zeichen zu erhalten und es in R0 zu speichern. Es erstellt keinen Stapel oder eine Zeichenfolge und es können nicht mehrere Zeichen gespeichert werden.

Um eine Zeichenfolge von der Konsole zu speichern, müssen Sie einen Ort definieren, an dem sie abgelegt und physisch abgelegt werden kann. Sie erhalten eine BLKW mit der Anzahl der Zeichen erstellen müssen, die Sie (plus Raum für ein Null-Zeichen) gespeichert werden soll, dann werden Sie brauchen:

  1. Last die Adresse dieses BLKW in ein Register
  2. den Charakter von r0 in dieser Adresse bewegen (Tipp: verwenden Sie STR)
  3. Schritt die Adresse, so dass Sie immer noch auf eine leere Position zeigt

um es noch einmal zu drucken, laden Sie die effektive Adresse Ihres Speicherplatzes a nd rufen Sie PUTS, wie Sie mit der Begrüßungszeichenfolge getan haben.

+1

Vielen Dank dafür –

Verwandte Themen