From: frief Date: Sat, 8 Nov 2003 15:40:24 +0000 (+0000) Subject: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=1f1469d2953dcc9c41dae422abe206bebfdc3785;p=fw%2Fsdcc fixed bug #838385. Thanks to Josef Pavlik for finding and fixing git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3004 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/mcs51/main.c b/src/mcs51/main.c index dfda2822..6d88a68d 100644 --- a/src/mcs51/main.c +++ b/src/mcs51/main.c @@ -156,12 +156,12 @@ _mcs51_genIVT (FILE * of, symbol ** interrupts, int maxInterrupts) /* Generate code to copy XINIT to XISEG */ static void _mcs51_genXINIT (FILE * of) { fprintf (of, "; _mcs51_genXINIT() start\n"); - fprintf (of, " mov a,#l_XINIT\n"); - fprintf (of, " mov r1,a\n"); + fprintf (of, " mov r1,#l_XINIT\n"); fprintf (of, " mov r2,#(l_XINIT >> 8)\n"); + fprintf (of, " mov a,r1\n"); fprintf (of, " orl a,r2\n"); fprintf (of, " jz 00003$\n"); - fprintf (of, " inc r2\n"); + fprintf (of, " mov r2,#((l_XINIT+255) >> 8)\n"); fprintf (of, " mov dptr,#s_XINIT\n"); fprintf (of, " mov r0,#s_XISEG\n"); fprintf (of, " mov p2,#(s_XISEG >> 8)\n");