アセンブラでソーシャルディスタンス大文字変換

基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
これからプログラミングを始める方へ

2020年新型コロナウイルスが蔓延しています。
恐らく今年の流行語に入ろうであろう、
「ソーシャルディスタンス」

英語で書くと
「Social Distance」
大文字と小文字が交じっていますが、
この文字列の小文字のみを大文字に変換する
プログラムを作りました。

イメージはこちらです。

配列MOJIがあって、緑色の所が大文字に変換した所です。
0番目から14番目までの要素があります。
レジスタはGR1~GR3まで使い、それぞれの役割は、
GR1が「Social Distance」が格納されている配列の
先頭アドレスから最後尾のアドレスまで、
処理中の文字のアドレスを指し示し、
GR2は文字数の15、GR3は、GR1が指し示すアドレスの中身、
つまり処理中の文字そのものを指します。

出力結果です。

プログラムはこちらです。
少しでも「密」を避けて、早くコロナが収まりますように、
という願いを込めて作ってみました。

TEST START
RPUSH


OUT MOJI,LEN

LAD GR1,MOJI;先頭番地指定
LD GR2,LEN
CALL UPPER;大文字変換プログラムを呼ぶ

OUT MOJI,LEN
RPOP
RET

MOJI DC ‘Social Distance’
LEN DC 15

UPPER RPUSH
LOOP LD GR3,0,GR1
CPL GR3,=’a’
JMI SONOMAMA
CPL GR3,=’z’
JPL SONOMAMA
SUBA GR3,=#20;大文字を小文字に変換
ST GR3,0,GR1
SONOMAMA LAD GR1,1,GR1
SUBA GR2,=1
JPL LOOP

RPOP
RET
END

CASL2のおススメ本です。

基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
これからプログラミングを始める方へ