*** ïÔ×ÅÔ ÎÁ ÐÉÓØÍÏ ÉÚ ÏÂÌÁÓÔÉ PRIVATE (îÁ ÍÏÅ ÉÍÑ).
OS/2 Hello, ÎÁÉÇÌÕÂÏËÏÕ×ÁÖÁÅÍÅÊÛÉÊ Vladimir!
=== Cut === // éÓÈÏÄÎÉË ÎÁ ó #define N 1024 float xre[N], xim[N], yre[N], yim[N], zre[N], zim[N]; int i; void main(void) { asm volatile("nop; nop; nop;"); for(i = 0; i<N; i++) { zre[i] = xre[i] * yre[i] - xim[i] * yim[i]; zim[i] = xim[i] * yre[i] + xre[i] * yim[i]; } asm volatile("nop; nop; nop;"); };
// òÅÚÕÌØÔÁÔÙ ËÏÐÉÌÑÃÉÉ ÆÒÁÇÍÅÎÔ ÍÅÖÄÕ nop'ÁÍÉ // Copmpilation with opt. level 0 nop; r2=0; dm(_i)=r2; _L$2: r2=dm(_i); r4=1023; comp(r2,r4); if gt jump (pc, _L$3) (DB); nop; nop; r2=dm(_i); r4=_zre; r1=r4+r2; i4=r1; r2=dm(_i); r4=_xre; r1=r4+r2; i0=r1; r2=dm(_i); r4=_yre; r1=r4+r2; i1=r1; f2=dm(i0,m5); f4=dm(i1,m5); f8=f2*f4; r2=dm(_i); r4=_xim; r1=r4+r2; i0=r1; r2=dm(_i); r4=_yim; r1=r4+r2; i1=r1; f2=dm(i0,m5); f4=dm(i1,m5); f12=f2*f4; f2=f8-f12; dm(i4,m5)=f2; r2=dm(_i); r4=_zim; r1=r4+r2; i4=r1; r2=dm(_i); r4=_xim; r1=r4+r2; i0=r1; r2=dm(_i); r4=_yre; r1=r4+r2; i1=r1; f2=dm(i0,m5); f4=dm(i1,m5); f8=f2*f4; r2=dm(_i); r4=_xre; r1=r4+r2; i0=r1; r2=dm(_i); r4=_yim; r1=r4+r2; i1=r1; f2=dm(i0,m5); f4=dm(i1,m5); f12=f2*f4; f2=f8+f12; dm(i4,m5)=f2; _L$4: r2=dm(_i); r4=r2+1; r2=r4; dm(_i)=r2; jump (pc, _L$2) (DB); nop; nop; _L$3:
Copmpilation with opt. level 2
dm(_i)=m5; r15=_zim; _L$5: i1=r7; i2=r3; i4=r9; m4=dm(_i); i0=i5; modify(i2,m4); modify(i1,m4); f5=dm(i2,m5); modify(i4,m4); f1=dm(i1,m5); modify(i0,m4); f2=dm(i4,m5); f8=f1*f5,f4=dm(i0,m5); f12=f2*f4,i3=r13; f8=f8-f12; dm(m4,i3)=f8; f2=dm(i4,m5); f4=dm(i2,m5); f8=f2*f4,r11=m4; r2=r11+1,f1=dm(i1,m5); f4=dm(i0,m5); f12=f1*f4,i3=r15; dm(_i)=r2; comp(r2,r0); if le jump (pc, _L$5) (DB); f8=f8+f12; dm(m4,i3)=f8; // óËÏÌØËÏ ÔÁËÔÏ× ÎÁ ÄÉÓËÒÅÔ ÐÏÌÕÞÉÌÏÓØ × ×ÙÛÅÐÒÉ×ÅÄÅÎÎÙÈ ÐÒÉÍÅÒÁÈ, Ñ ÎÅ ÓÞÉÔÁÌ, ÎÏ × ÎÁÛÅÊ ÓÉÓÔÅÍÅ ×ÓÅ, ÞÔÏ ÂÏÌÅÅ 33 - ÎÅ ÕÓÐÅ×ÁÅÔ.
// Ha ÓÌÁÄËÏÅ - ÒÕÞÎÁÑ ÒÁÂÏÔÁ - 4 ÔÁËÔÁ ÎÁ ÄÉÓËÒÅÔ: x1 = dm(i0, m6), y1 = pm(i8, m14); x2 = dm(i1, m4), y2 = pm(i9, m12); x1x2 = x1 * x2, x2_= dm(i3, m4); y1y2 = y1 * y2; r2 = r2 - 1; LCNTR = r2, DO x_loop UNTIL LCE; x2y1 = x2 * y1, x3 = x1x2 - y1y2, x2_= dm(i3, m4); x1y2 = x1 * y2, x1 = dm(i0, m6), y2=pm(i9, m12); x1x2 = x1 * x2_, y3 = x2y1 + x1y2, x2 = dm(i1, m4), y1=pm(i8, m14); x_loop: y1y2 = y1 * y2, dm(i2, m6) = y3, pm(i10, m14) = x3; x2y1 = x2 * y1, x3 = x1x2 - y1y2; x1y2 = x1 * y2; y3 = x2y1 + x1y2; dm(i2, m6) = y3, pm(i10, m14) = x3; === Cut === HÁ ÆÌÅÊÍ ÐÏ ÄÁÎÎÏÊ ÔÅÍÅ ÂÏÌÅÅ ÎÅ ÏÔ×ÅÞÁÀ. (ÎÁ ÎÅÆÌÅÊÍ - ÏÔ×ÅÞÁÀ ;)
ó Õ×ÁÖÅÎÉÅÍ! ðÁ×ÅÌ. Suzuki VX-800 1936 AE 77