« 2010年5月16日 - 2010年5月22日 | トップページ | 2010年12月26日 - 2011年1月1日 »

2010年5月25日 (火)

アセンブラで JIS から SJIS に変換するとき DAA が使える?

ずっと以前、私がまだ学生のころに、ちらと聞いたのだと思う。2進化10進数補正はほぼ使いようもないが、JIS コードの変換に使うと便利であるというような話だった。そのことについて「それはちょっと…」みたいに否定的なことを私は言って、その話が終わったように記憶している。

先日、シフトJIS(Shift-JIS)の話をたまたま読んで、シフトがビットシフトの意味でないと書いているのを見て、いや、しかし、アセンブラ特有の変な感じでシフトを使えることがこのコードの由来だったはずだぞ…という想いが浮かんだ。でも、Perl などでの実装も、ネットにあるいくつかのアセンブラのソースを見ても、そんな風には書かれていない。

つまり、それはかつての「2進化10進補正」を使うという議論に関係していたのかもしれない。そう私は推理し、自分なりにその方法を模索した。

本稿では Z80 のアセンブラを用いる。実験では、Perl 上のアセンブラ CPU::Z80::Assembler とエミュレータ CPU::Emulator::Z80 のモジュールを使った。

続きを読む "アセンブラで JIS から SJIS に変換するとき DAA が使える?"

2010-05-25 20:27:52 (JST) in ハード | | コメント (0) | トラックバック (0)