一回も披露したことのない豆知識

はじめまして、お聞きしたいことがあります。

すべて大文字で書かれた英語の単語をCASL2の仕様で、X番地以降に格納されている状態で、先頭以外は小文字にして、Y番地以降に収納させたいのですが、英語をどのようにして表示させたらいいのか分かりません。ヒントや解き方など、アドバイスがありました、教えていただければ幸いです。

よろしくお願いいたします。

A 回答 (2件)

プログラムの一例


文字を小文字に変換しながらコピーして、先頭の文字は再度そのままコピーします。
;--------------------------------------------------------------
;SWORDからDWORDへ先頭以外を小文字に変換しながらコピー
;
LOWRISE START
;INLOOP IN SWORD,SLENGTH
LD GR0,SLENGTH
CPA GR0,=-1 ;蛇足
JZE EXIT
CPA GR0,=0 ;サイズ0、出力側サイズも0にした方がいいかも
JZE EXIT
ST GR0,DLENGTH
LAD GR2,0
COPY LD GR0,SWORD,GR2
CALL TOLOWER
ST GR0,DWORD,GR2
LAD GR2,1,GR2
CPA GR2,SLENGTH
JNZ COPY
LD GR0,SWORD ;先頭はそのまま
ST GR0,DWORD
OUT DWORD,DLENGTH
EXIT RET
;
SWORD DC 'HELLO'
SLENGTH DC 5
DWORD DS 256
DLENGTH DS 1
END
;
;GR0 に入れた文字を小文字にする
TOLOWER START
PUSH 0,GR1
IF CPL GR0,LARGEA ;IF 'Z' >= GR0 >= 'A'
JMI EXIT
CPL GR0,='Z'
JPL EXIT
THEN LD GR1,SMALLA
SUBL GR1,LARGEA
ADDL GR0,GR1
ENDIF DS 0
EXIT POP GR1
RET
SMALLA DC 'a'
LARGEA DC 'A'
END
    • good
    • 0
この回答へのお礼

詳しくプログラムを教えてくださり、ありがとうございます。自分なりに解読しながら地道にがんばっていきます。

お礼日時:2005/11/02 15:47

'a'='A'+20(10進数の32)


http://www016.upp.so-net.ne.jp/masuda2/text2/cas …

実際にはアルファベットは無いです。
数字で表現しているだけです。ただし 通常16進数

また CASL上で1は1ですが 文字の'1'は31です。
    • good
    • 0
この回答へのお礼

そーいうことだったんですね!!
参考サイトまで教えていただきありがとうございます。
頑張って作成してみます。

お礼日時:2005/11/01 16:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!