パスワードを忘れた? アカウント作成
13968879 journal
日記

yasuokaの日記: Z80における定数10の除算 4

日記 by yasuoka

ネットサーフィンしていたところ、Z80で100未満の数値を10で除算処理するというページに行き当たった。Bレジスタに0~99の整数が入っている時に、10で除算した商をHレジスタに、余りをAレジスタに返す、という問題のようだ。私(安岡孝一)個人は条件分岐がキライなので、まあ、1/10≒26/256で商を求めることになると思う。

78      LD A,B
87     ADD A
6F      LD L,A
AF     XOR A
67      LD H,A
58      LD E,B
57      LD D,A
19     ADD HL,DE
29     ADD HL,HL
29     ADD HL,HL
19     ADD HL,DE
29     ADD HL,HL

これでHレジスタに商が求まるはずなので、あとは10倍してBレジスタから引けば、余りが求まる。Aレジスタには0が入ってるはずなので、それを使い回せば以下の通り。

94     SUB H
87     ADD A
87     ADD A
94     SUB H
87     ADD A
80     ADD B

ヘッドアセンブルで書いたのでミスがあるかもしれないが、さて、こういうアイデアは邪道なのかしら?

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...