Created
May 3, 2018 05:56
-
-
Save maehrm/d855e1770fa53d3253cd2d403eac8f85 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PRO2 START | |
LAD GR1,DATA | |
LAD GR2,CTBL | |
CALL GETWD | |
RET | |
DATA DC ' 1234 56789 9876 .' | |
CTBL DS 4 | |
END | |
GETWD START | |
RPUSH | |
LD GR6,GR1 | |
LD GR7,GR2 | |
LD GR3,=-1 ; 数字列の処理状態フラグの初期化 | |
LAD GR6,-1,GR6 | |
LP LAD GR6,1,GR6 | |
LD GR4,0,GR6 ; 1文字の取出し | |
CPL GR4,='.' | |
JZE FIN | |
CPL GR4,=' ' | |
JNZ NUM | |
CALL SETWD | |
JUMP LP | |
NUM LD GR3,GR3 ; 数字列の処理中? | |
JZE LP | |
LD GR3,=0 ; 次の数字列の処理開始 | |
LD GR1,GR6 ; 数字列の先頭アドレスを退避 | |
JUMP LP | |
FIN CALL SETWD | |
LD GR2,=-1 | |
ST GR2,0,GR7 ; 数値の終わりを示す印を格納 | |
RPOP | |
RET | |
SETWD LD GR3,GR3 | |
JNZ FIN2 | |
LD GR2,GR6 | |
SUBL GR2,GR1 | |
CALL DTOB ; 数字列を数値に変換 | |
ST GR0,0,GR7 | |
LD GR3,=-1 ; 数字列の処理中状態を解除 | |
LAD GR7,1,GR7 | |
FIN2 RET | |
END | |
DTOB START | |
RPUSH | |
ADDL GR2,GR1 | |
LAD GR0,0 ; 戻り値の初期化 | |
LP CPL GR1,GR2 ; 変換終了? | |
JZE FIN | |
LD GR4,0,GR1 ; 数字1文字の取り出し | |
SUBL GR4,='0' ; 1桁を数値に変換 | |
SLL GR0,1 ; GR0を10倍してGR4を加算 | |
LD GR5,GR0 | |
SLL GR5,2 | |
ADDL GR0,GR5 | |
ADDL GR0,GR4 | |
LAD GR1,1,GR1 | |
JUMP LP | |
FIN RPOP | |
RET | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
平成30年度春季基本情報午後問12 - Mae向きなブログ http://maehrm.hatenablog.com/entry/2018/05/03/154307