LINUX.ORG.RU

История изменений

Исправление Old_Hamster, (текущая версия) :

что-то ты не так сделал

ISR(INT0_vect)
{
    volatile unsigned char a, b;
    a = 2 + 3;
    b = a * 4;
}
@00000023: __vector_1
5:        {
+00000023:   921F        PUSH      R1             Push register on stack
+00000024:   920F        PUSH      R0             Push register on stack
+00000025:   B60F        IN        R0,0x3F        In from I/O location
+00000026:   920F        PUSH      R0             Push register on stack
+00000027:   2411        CLR       R1             Clear Register
+00000028:   938F        PUSH      R24            Push register on stack
+00000029:   93DF        PUSH      R29            Push register on stack
+0000002A:   93CF        PUSH      R28            Push register on stack
+0000002B:   D000        RCALL     PC+0x0001      Relative call subroutine
+0000002C:   B7CD        IN        R28,0x3D       In from I/O location
+0000002D:   B7DE        IN        R29,0x3E       In from I/O location
7:            a = 2 + 3;
+0000002E:   E085        LDI       R24,0x05       Load immediate
+0000002F:   8389        STD       Y+1,R24        Store indirect with displacement
8:            b = a * 4;
+00000030:   8189        LDD       R24,Y+1        Load indirect with displacement
+00000031:   0F88        LSL       R24            Logical Shift Left
+00000032:   0F88        LSL       R24            Logical Shift Left
+00000033:   838A        STD       Y+2,R24        Store indirect with displacement
9:        }
+00000034:   900F        POP       R0             Pop register from stack
+00000035:   900F        POP       R0             Pop register from stack
+00000036:   91CF        POP       R28            Pop register from stack
+00000037:   91DF        POP       R29            Pop register from stack
+00000038:   918F        POP       R24            Pop register from stack
+00000039:   900F        POP       R0             Pop register from stack
+0000003A:   BE0F        OUT       0x3F,R0        Out to I/O location
+0000003B:   900F        POP       R0             Pop register from stack
+0000003C:   901F        POP       R1             Pop register from stack
+0000003D:   9518        RETI                     Interrupt return

intel(amd)

тут у нас нить о gcc для МК ;)

Исходная версия Old_Hamster, :

что-то ты не так сделал

ISR(INT0_vect)
{
    volatile unsigned char a, b;
    a = 2 + 3;
    b = a * 4;
}
@00000023: __vector_1
5:        {
+00000023:   921F        PUSH      R1             Push register on stack
+00000024:   920F        PUSH      R0             Push register on stack
+00000025:   B60F        IN        R0,0x3F        In from I/O location
+00000026:   920F        PUSH      R0             Push register on stack
+00000027:   2411        CLR       R1             Clear Register
+00000028:   938F        PUSH      R24            Push register on stack
+00000029:   93DF        PUSH      R29            Push register on stack
+0000002A:   93CF        PUSH      R28            Push register on stack
+0000002B:   D000        RCALL     PC+0x0001      Relative call subroutine
+0000002C:   B7CD        IN        R28,0x3D       In from I/O location
+0000002D:   B7DE        IN        R29,0x3E       In from I/O location
7:            a = 2 + 3;
+0000002E:   E085        LDI       R24,0x05       Load immediate
+0000002F:   8389        STD       Y+1,R24        Store indirect with displacement
8:            b = a * 4;
+00000030:   8189        LDD       R24,Y+1        Load indirect with displacement
+00000031:   0F88        LSL       R24            Logical Shift Left
+00000032:   0F88        LSL       R24            Logical Shift Left
+00000033:   838A        STD       Y+2,R24        Store indirect with displacement
9:        }
+00000034:   900F        POP       R0             Pop register from stack
+00000035:   900F        POP       R0             Pop register from stack
+00000036:   91CF        POP       R28            Pop register from stack
+00000037:   91DF        POP       R29            Pop register from stack
+00000038:   918F        POP       R24            Pop register from stack
+00000039:   900F        POP       R0             Pop register from stack
+0000003A:   BE0F        OUT       0x3F,R0        Out to I/O location
+0000003B:   900F        POP       R0             Pop register from stack
+0000003C:   901F        POP       R1             Pop register from stack
+0000003D:   9518        RETI                     Interrupt return

intel(amd)

мы тут у нас нить о gcc для МК ;)