To access D0 (or any other core processor registers) from C code, you could use inline assembly. Search for 'asm' in codewarrior help. Here is one example given in the codewarrior help:
long int b;
struct mystruct { long int a;
} ;
static asm long f(void) // Legal asm qualifier
{ move.l struct(mystruct.a)(A0),D0 // Accessing a struct.
add.l b,D0 // Using a global variable, put return value
// in D0.
rts // Return from the function:
// result = mystruct.a + b
}