アセンブラの宿題質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0708デフォルトの名無しさん
2007/05/24(木) 15:27:34REV START
RPUSH
IN IBUF,LEN ;IBUFへ入力, 入力された文字数はLENに格納される。
SUB GR1,GR1 ;指標レジスタ兼ループカウンタを初期化。
REV1 LD GR0,IBUF,GR1 ;IBUF先頭から数えてGR1番目の文字を、
PUSH 0,GR0 ;スタックに積む。
LAD GR1,1,GR1 ;ループカウンタをインクリメント。
CPA GR1,LEN ;入力された文字数分だけスタックに積んだか?
JNZ REV1 ;まだならREV1へループする。
SUB GR1, GR1 ;ループカウンタを0にリセット。
REV2 POP GR0 ;スタックから1文字とってきて、
ST GR0,OBUF,GR1 ;OBUF先頭から数えてGR1番目へ置く。
LAD GR1,1,GR1 ;ループカウンタをインクリメント。
CPA GR1,LEN ;文字数分だけ処理したか?
JNZ REV2 ;まだならREV2へループする。
OUT OBUF,LEN ;処理した文字列を出力する。
RPOP
RET
END
IBUF DS 256
OBUF DS 256
LEN DS 1
■ このスレッドは過去ログ倉庫に格納されています