Вообщем по дисассемблеру вот так:
171: register int result asm("A");
172: int *xmemory;
173: int *ymemory;
174: int xVal= 0x8000, yVal= 0x7FFF;
03F8 280000 mov.w #0x8000,0x0000
03FA 980750 mov.w 0x0000,[0x001c+10]
03FC 27FFF0 mov.w #0x7fff,0x0000
03FE 980760 mov.w 0x0000,[0x001c+12]
175: result = __builtin_mpy(xVal, yVal, &xmemory, &xVal, 2, &ymemory, &yVal, 2);
0400 9001EE mov.w [0x001c+12],0x0006
0402 9002DE mov.w [0x001c+10],0x000a
0404 470266 add.w 0x001c,#6,0x0008
0406 47006A add.w 0x001c,#10,0x0000
0408 980770 mov.w 0x0000,[0x001c+14]
040A 780094 mov.w [0x0008],0x0002
040C 470168 add.w 0x001c,#8,0x0004
040E 4703EC add.w 0x001c,#12,0x000e
0410 780012 mov.w [0x0004],0x0000
0412 780401 mov.w 0x0002,0x0010
0414 780500 mov.w 0x0000,0x0014
0416 780303 mov.w 0x0006,0x000c
0418 C42447 mpy 0x000a*0x000c,a,[0x0010]+=2,0x000c,[0x0014]+=2,0x000a
041A 78000A mov.w 0x0014,0x0000
041C 780088 mov.w 0x0010,0x0002
041E 780186 mov.w 0x000c,0x0006
0420 780A01 mov.w 0x0002,[0x0008]
0422 780900 mov.w 0x0000,[0x0004]
0424 90047E mov.w [0x001c+14],0x0010
0426 780C03 mov.w 0x0006,[0x0010]
0428 780B85 mov.w 0x000a,[0x000e]
На 0418 строчке симулятор выдает:
CORE-E0006: Trap due to memory access outside Y data space, occurred from instruction at 0x000418
CORE-W0008: Software Reset Instruction called at PC=0x000a50
Сильно не пинайте, я в ассемблере ноль)