[H8-ML(657)] 初歩的な質問なんですが・・・
From: "you!! INOUE" <nonsaya@xxxxxxxxxxxxx>
Date: 2000年06月27日(火)01時43分52秒
はじめまして、井上ともうします、

皆様方の超超高度な話題の中、初歩的な質問で
大変恥ずかしいのですが、2週間悩んでもうまくいかないので
質問致します・・・・・・・・

問題は16進数をどうやって10進数にするか?です
例えばR1に入っている16ビットのデータを10進5桁にしたい場合
皆様ならどのような方法で処理するのでしょうか?

自分はいままでZ80を使ってから最近H8にシフトした口なので
割り算などよく使い方がわからず、引き算で商を出し、余りをさらに割る
などの方法で行ったのですがまったくうまくいかず・・・・・・・(^_^;)

こんな感じのサブルーチンなのですが

HEXDC:  MOV.W @SEG5,R6  ;R6にSEG5のアドレス代入
              MOV.W #10000,R5  ;R5に10000を代入
              JSR @WARI   ;WARISにジャンプ
              MOV.W #1000,R5  ;R5に1000を代入
              JSR @WARI   ;WARIにジャンプ
              MOV.W #100,R5   ;R5に100を代入
              JSR @WARI   ;WARIにジャンプ
              MOV.W #10,R5   ;R5に10を代入
              JSR @WARI   ;WARIにジャンプ
              MOV.B R5L,@R6   ;余りを1桁目に
WARI:      XOR.B R1L,R1L
WARI1:      SUB.W R5,R3     ;R3からR5を減算
              BCS WARI2   ;キャリーが出たらWARI2へ
              INC.B R1L   ;R1Lに1を加算(商)
              JMP @WARI1   ;WARI1にジャンプ
;-----------------------------------------------------------------------
WARI2:      ADD.W R5,R3   ;一回多いのでR5を加算
                 MOV.B R1L,@R6   ;商(R0L)をR6が示すアドレスに
                INC.W #1,R6
                RTS

と何度やってもうまくいかないのはナゼ?
もしかしたらこれ以外の場所が悪いのでしょうか?


スレッド概略
[654(R)](起点)
 └[656(U)]
   └[表示中]
     ├[658(1)]
     └[659(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]