またしても適当に作りました。
#include "osecpu_ask.h"
#define L_putDec LOCAL(0)
LOCALLABELS(1);
#define putDec(i) R30=i; CALL(L_putDec)
// main
for (;0;) {
int32s i:R00;
for (i = 0; i != 10000; i++) {
putDec(i);
junkApi_putConstString(' ');
}
}
jnukApi_exit(0);
beginFunc(L_putDec);
for (;0;) {
int32s i:R00;
i = R30; // できるだけR00を使いたいのでいったん引き取る.
// R00は高速に演算できるレジスタです.
junkApi_putchar(i / 1000 + '0'); i %= 1000;
junkApi_putchar(i / 100 + '0'); i %= 100;
junkApi_putchar(i / 10 + '0'); i %= 10;
junkApi_putchar(i + '0');
}
endFunc();