misa and hex numbers uint misa = 0; asm("csrr %0, misa" : "=r"(misa)); printf("$misa in hex: 0x%x\n", misa); --- C pointers int g = 3; int main() { int l = 5; int *p, *q; // take address of variable p = &g; q = &l; printf("p %p q %p\n", p, q); // pointer of an pointer int **pp; pp = &p; // take address of a pointer variable printf("pp %p %p %d\n", pp, *pp, **pp); int (*f)(int, char **); f = &main; // take address of a function< printf("main: %p\n", f); return 0; } --- local vars on stack void bar() { int l; // local variables don't have a default value printf("uninitialized local variable: %x\n", l); } void foo() { int xyz = 0xdeadbeef; printf("quit foo w/ local var = %x\n", xyz); } int main() { bar(); foo(); bar(); } --- ptr arithmetic int main() { char *c = (char *)0x08200000; int *i = (int *) 0x08200000; printf("%p %p\n", (c+1), (i+1)); return 0; } ---