그래서 문자열을 저장하는 방식이 효과가 있다고 생각합니다. 난 그냥 문자열을 서브 루틴 밖으로 전달하는 몇 가지 문제가 있습니다. "반환하는 개념 내가 서브 루틴의 무언가를 전달하기 위해 당신이 R1에 저장해야한다는 것을 들었지만 나는 내 WORD 배열LC3에서 서브 루틴이있는 문자열에서 읽는 데 문제가 있습니다
.orig x3000
AND R1,R1,0
LEA R0,PROMPT
PUTS
JSR GETS
ST R1,WORD
LEA R0,WORD
PUTS
halt
; ---------Data Area-------------
WORD .blkw 20
PROMPT .stringz "Enter String: "
; -------------------------------
GETS LEA R1,MEMORYBLOCK ; saves the address of the storage memory block
loop GETC ; input character -> r0
PUTC ; r0 -> console
; always points at the next available block
LD R2,EMPTY ; check for
ADD R2,R2,R0 ; end of line
BRz finish
LD R2,COUNTDOWN
ADD R2,R2,#-1
BRz finish
ST R2,COUNTDOWN
STR R0,R1,#0 ; r0 -> (memory address stored in r1 + 0)
ADD R1,R1,#1 ; increments the memory pointer so that it
BR loop
finish LEA R1,MEMORYBLOCK
RET
; ----Subroutine Data Area-------
EMPTY .fill xfff6
COUNTDOWN .fill #10
MEMORYBLOCK .BLKW 20
; -------------------------------
.end