Hatena::Grouprubyist

たばさの RSSフィード

12/10(月) 2007

google

| google - たばさの を含むブックマーク はてなブックマーク - google - たばさの

問題 http://golf.shinh.org/p.rb?google

アセンブル http://www.mokehehe.com/z80golf/test.html

環境 http://www.mokehehe.com/z80golf/


EOFでCaryy Flagが立つということなので #GETCHAR のあとにJR C,** とかRET C,**とかRET NC,**とか使って分岐します。EOFのときは変わりにバッファに(FFH)を入れておきます。INCでゼロ判定するため。ほかにいい方法あるかも。

CALC」(数値に変換ループ)では2倍と8倍を足して10倍、それに次の桁を足す、のループで。(足す前に文字ASCIIコードから30Hを引いて数値にしておく。)255までは使えるでしょう。それ以上だったらどうするのか。

しかしあと三倍か。



; sample: google
#PUTCHAR EQU 8000H
#GETCHAR EQU 8003H
@CR equ 0AH

 LD HL,WORD
 LD A,(HL)
 CALL #PUTCHAR
 LD HL,BUF
 CALL GET
 LD HL,WORD
 INC HL
 LD A,B
LOOP:
 LD B,A
 LD A,(HL)
 CALL #PUTCHAR
 LD A,B
 SUB 1
 JR NZ,LOOP

 INC HL
 LD A,(HL)
 CALL #PUTCHAR
 INC HL
 LD A,(HL)
 CALL #PUTCHAR
 INC HL
 LD A,(HL)
 CALL #PUTCHAR
 HALT
GET:
 CALL #GETCHAR
 JR C,CAR
 LD (HL),A
 INC HL
 JR GET
NEX:
 LD HL,BUF
 LD A,0
 LD B,0
CALC:
 LD A,(HL)
 INC A
 RET Z
 LD A,B
 RLCA
 LD B,A
 RLCA
 RLCA
 ADD A,B
 LD B,A
 LD A,(HL)
 SUB 030H
 ADD A,B

 LD B,A
 INC HL
 JR CALC
 
CAR:
 LD (HL),0FFH
 JR NEX
WORD:
 DB 'gogle'
BUF:
 DB '    '

;;

トラックバック - http://rubyist.g.hatena.ne.jp/hatecha/20071210
カレンダー
<< 2007/12 >>
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
archive Error : RSSが取得できませんでした。