Kalamatee
05/13/2023, 2:13 AMKalamatee
05/15/2023, 4:25 PMasm (
".globl __int_handler\n"
".type __int_handler,%function \n"
"__int_handler: \n"
"\taddi sp, sp, -29*4\n" // adjust stack
"\n"
"\tsw x1, 1*4(sp)\n" // store x1 (ra) - x0 (zero), x2 (sp), x3 (gp) and x4(tp) are ignored.
"\tsw x5, 2*4(sp)\n" // store temp/func and saved registers
"\tsw x6, 3*4(sp)\n"
"\tsw x7, 4*4(sp)\n"
"\tsw x8, 5*4(sp)\n"
"\tsw x9, 6*4(sp)\n"
"\tsw x10, 7*4(sp)\n"
"\tsw x11, 8*4(sp)\n"
"\tsw x12, 9*4(sp)\n"
"\tsw x13, 10*4(sp)\n"
"\tsw x14, 11*4(sp)\n"
"\tsw x15, 12*4(sp)\n"
"\tsw x16, 13*4(sp)\n"
"\tsw x17, 14*4(sp)\n"
"\tsw x18, 15*4(sp)\n"
"\tsw x19, 16*4(sp)\n"
"\tsw x20, 17*4(sp)\n"
"\tsw x21, 18*4(sp)\n"
"\tsw x22, 19*4(sp)\n"
"\tsw x23, 20*4(sp)\n"
"\tsw x24, 21*4(sp)\n"
"\tsw x25, 22*4(sp)\n"
"\tsw x26, 23*4(sp)\n"
"\tsw x27, 24*4(sp)\n"
"\tsw x28, 25*4(sp)\n"
"\tsw x29, 26*4(sp)\n"
"\tsw x30, 27*4(sp)\n"
"\tsw x31, 28*4(sp)\n"
"\n"
"\tcsrr t0, mepc\n" // Save the current pc
"\tsw t0, 29*4(sp)\n"
"\n"
// "\tjal ...\n"
);
Kalamatee
05/15/2023, 4:25 PMKalamatee
05/17/2023, 12:46 AMKalamatee
05/17/2023, 12:47 AMKalamatee
05/17/2023, 12:48 AM