トリッキーなコード その2
■ このスレッドは過去ログ倉庫に格納されています
0353デフォルトの名無しさん
NGNGCDxxxx call DIVIHD##;HL/DE-->DE=余り、HL=商
; 除算を実行した直後は上位ワード=余り,下位ワード=商、が標準的手法。
C1 pop B ;リターンアドレス pop
F1 pop PSW
F1 pop PSW ;SPを返却値のアドレスまでpop
D5 push D ;余りpush
E5 push H ;商をpush
C5 push B ;リターンアドレスpushでcall時点の状態
C9 ret ;リターンアドレスpop, 分岐
; 1バイト命令だけでよく書けてると思います。んで、この結果を
sprintf(wk,"・・・%d %d",div(int,10)で0.1単位の整数の編集に使い、
割り算を1回ですませた。3MのCPUでシビアな処理の所、ウマーでした。
■ このスレッドは過去ログ倉庫に格納されています