教えてください。課題が解けません。
【概要】BUFF番地以降に文字列を入力するものとします。次の各プログラムを作りなさい。なお、入力文字数は最大20文字とします。また、必要に応じて出力用の作業メモリ領域は適宜用意すること。
(1)入力した文字列を、逆順にして出力するプログラム
【回答1】PROG START
IN BUFF,LEN_B
LD GR1,=0
LD GR3,LEN_B
LD GR4,GR3
LOOP CPA GR3,=0
JZE LOOP2
LD GR2,BUFF,GR1
PUSH 0,GR2
ADDA GR1,=1
SUBA GR3,=1
JUMP LOOP
LOOP2 POP GR2
ST GR2,BUFF,GR3
ADDA GR3,=1
CPA GR3,GR4
JZE FEW
JUMP LOOP2
FEW OUT BUFF,LEN_M
RET
BUFF DS 20
LEN_B DS 1
LEN_M DC 20
END
(回答2)
PROG START
IN BUFF,LEN_B
LD GR1,=0
LD GR3,LEN_B
LD GR4,GR3
LOOP CPA GR3,=0
JZE LOOP2
LD GR2,BUFF,GR1
PUSH 0,GR2
ADDA GR1,=1
SUBA GR3,=1
JUMP LOOP
LOOP2 POP GR2
ST GR2,TURN,GR3
ADDA GR3,=1
CPA GR3,GR4
JZE FEW
JUMP LOOP2
FEW OUT TURN,LEN_M
RET
BUFF DS 20
TURN DS 20
LEN_B DS 1
LEN_M DC 20
END
【指摘事項】上記を提出したところ、PUSH命令、POP命令は使わない。また、ほかの番地を作ることも禁止。
【提案の際のお願い】回答から、先生から指摘された事項をふまえ、回答に導くご指導をお願いします。