speichern eine Zeichenfolge von Zeichen in der Montage LC-3
Ich versuche, ein einfaches Programm mit dem LC-3-Architektur.
Alles was ich versuche zu tun ist, Lesen Sie einen string von der Konsole aus, irgendwie im Gedächtnis zu speichern, und dann drucken Sie es wieder aus.
Dies ist, was ich Bisher
; This program attemps to read a string and then output it
.orig x3000
and r1,r1,0
lea r0,prompt
puts
loop:
getc
putc
add r4,r4,1
ld r7,nlcomp ; check for
add r7,r7,r0 ; end of line
brz finish
st r0,lets
br loop
finish:
lea r0,lets
puts
halt
lets: .blkw 20
prompt: .stringz "Emter String"
nlcomp .fill xfff6
.end
Die Ausgabe zeigt nur das Letzte Zeichen in der Zeichenfolge. Wenn ich enter "steve" würde es ausdrucken "e"
Offensichtlich mein problem ist, dass ich irgendwie zu retten jeden char den ich lese, in seinen eigenen Speicher. Ich dachte mit dem .blkw dies zu tun wäre, aber anscheinend alle es tut, überschreiben der bits, die in dieser position.
MEINE Frage ist, wie Speichere ich chars in aufeinanderfolgenden Speicherbereichen und drucken Sie Sie aus der Konsole?
InformationsquelleAutor Cheesegraterr | 2011-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Verwendung der STR-Anweisung, die es erlaubt, Basis-offset-Adressierung. Die syntax für STR:
So, etwas wie das folgende gültig:
InformationsquelleAutor aqua
Ich bin nicht vertraut mit LC-3 bei allen, aber wenn ich lese über den code, was ich sehe, ist, dass Sie immer speichern, um die Adresse verwies auf die von 'können' und nicht die Adresse gezeigt, durch 'können' plus einem offset. Da dieser markiert ist, als Hausaufgaben, ich lasse Sie herausfinden, wie zu tun! 🙂
InformationsquelleAutor Dean Pucsek