2016-05-04 18 views
-1

LC3で文字列を入力するようにプログラムを作成しようとしています。私のプログラムは、ユーザが入力した文字列から最初の文字を印刷するだけです。たとえば、 "Hello"と入力した場合、 "H"が出力されます。これを修正する方法はありますか?ありがとうプログラムはユーザーが入力した文字列の最初の文字のみを出力します

.orig x3000 
Lea r1, storeString 

Lea r0, EnterText 
puts 

LOOP 
getc 

str r0, r1, 0 
add r1, r0, -10 
brz OUTSIDE 

out 
brnzp LOOP 

OUTSIDE 

Lea r0, UserEnter 
puts 

Lea r0, storeString 
puts 

Halt 
EnterText .stringz "\nPlease enter a text: " 
UserEnter .stringz "\nThe text you have typed is: " 
storeString .BLKW 99 

.end 

答えて

0

デバッガの使い方を学んでください。行チェックの終わりにr1(あなたのポインタ)を上書きしています。実際には、次の文字の場所を指すように1をインクリメントする必要があります。あなたはこれが爆破するだけではないことが幸運です。

このような何かがよりよく動作するはず:

LOOP 
getc 

str r0, r1, 0 
add r1, r1, 1 ; next character 
add r0, r0, -10 ; just subtract in place 
brz OUTSIDE 

out 
brnzp LOOP 
関連する問題