Procedure zh2_51(VAR j:int16; VAL i:int32; VAL k:int16);@nodisplay;@cdecl; Static B: byte[ ]:=[-7,21,-16,51]; W: word[ ]:=[-27,61]; D:dword[ ]:=[-31,23]; VAR y:int32; x:int16; z:int32; begin zh2_51;// Az eljaras hivasa: zh2_51(word_var, 8, DX) MOV(i,EAX); MOV(4,ECX); // 1. //? EAX=%0000_0000_0000_0000_0000_0000_0000_1000; ismet: DEC(CX); SUB(CL,AL); DEC(CX); JNS ismet; //? EAX=$00000005(=5); ECX=$0000FFFE(=65534); CF=1; LEA(i,EBX);SUB(ESP,EBX); LEA(y,EAX); SUB(EBP,EAX); // 2. //? (type uns8 BL)=24; (type int32 EBX)=24; //? (type uns8 AL)=252; EAX=$FFFFFFFC(=-4=4294967292); CF=1; MOV(D[-1],EAX); MOV(D[2],EBX); // 3. //? (type uns8 AH)=225; (type uns8 AL)=0; EAX=$FFFFE100(=-7936=4294959360); //? EBX=$0017FFFF(=1572863); (type int8 BL)=-1; MOV(-29,EAX); MOV(EAX,ECX); ROR(3,AX); // 4. //? (type int8 AL)=-4; (type uns8 AH)=127; //? (type uns8 CL)=227; ECX=$FFFFFFE3(=-29=4294967267); CF=0; MOV(-7,EAX); MOV(ESP,EBX); PUSH(EAX); SUB(ESP,EBX); ADD([ESP],EAX); // 5. //? (type int8 AH)=-1; (type uns8 AL)=242; //? EBX=$00000004(=4); CF=1; LEA(B[3],EAX); MOV([EAX],EBX); MOV(EBX,EAX); SUB(41,EAX); // 6. //? AL=%0000_1010; (type int8 AL)=10; (type uns8 AH)=229; //? EBX=$3DFFE533(=1040180531); (type int8 BL)=51; PF=1; MOV(&W[-1],EAX); ujra: MOV([EAX],EBX); INC(EAX); AND(BL,BL); JNZ ujra; SUB(&W,EAX); // 7. //? BL=$00(=0); EAX=$00000004(=4); (type int8 BH)=-31; CF=0; MOV(-38,EAX); LEA ([EAX+EAX*2],ECX); MOV(D,EBX); SHLD(3,EBX,EAX); // 8. //? EAX=$FFFFFED7(=-297=4294966999); BX=$FFE1(=-31=65505); (type uns8 AL)=215; //? (type uns8 CH)=255; CL=$8E(=-114=142); CF=1; ZF=0; MOV(D[1],EAX); CDQ; ADD(DL,AL); ADC(DH,AH); // 9. //? AL=$FF(=-1=255); EAX=$17FFFFFF(=402653183); //? EDX=$00000000(=0); CF=0; PF=1; SF=1; MOV(-52,EAX); CDQ; MOV(7,ECX); IDIV(ECX); ADD(DL,CL); // 10. //? DL=$FD(=-3=253); AX=$FFF9(=-7=65529); (type uns8 AL)=249; //? CL=$04(=4); CF=1; end zh2_51;//39+12 Procedure zh2_52(VAL i:int32; VAL k:int16; VAR j:int16);@nodisplay; Static B: byte[ ]:=[-11,27,-5,0]; W: word[ ]:=[25,-71]; D:dword[ ]:=[-35,47]; VAR x:int16; z:int32; y:int32; begin zh2_52;// Az eljaras hivasa: zh2_52(-7, 2, word_var) MOVSX(k,EAX); MOV(3,ECX); ismet: ROR(CL,AL); DEC(CL); JNS ismet; // 1. //? EAX=$00000008(=8); ECX=$000000FF(=255); CF=0; LEA(j,EBX);SUB(ESP,EBX); LEA(z,EAX); SUB(EBP,EAX); // 2. //? (type uns8 BL)=20; (type int32 EBX)=20; //? (type uns8 AL)=250; EAX=$FFFFFFFA(=-6=4294967290); CF=1; MOV(D[-2],EAX); MOVSX(W[2],EBX); // 3. //? (type uns8 AH)=255; (type uns8 AL)=185; EAX=$FFDDFFB9(=-2228295=4292739001); //? EBX=$FFFFFFB9(=-71=4294967225); (type int8 BL)=-71; MOV(-24,EAX); MOV(EAX,EBX); ROL(2,AX); // 4. //? (type int8 AL)=-93; (type uns8 AH)=255; //? (type uns8 BL)=232; EBX=$FFFFFFE8(=-24=4294967272); CF=1; MOV(-28,EAX); MOV(ESP,EBX); PUSH(EAX); ADD([EBX-4],EAX); SUB(ESP,EBX); // 5. //? (type int8 AH)=-1; (type uns8 AL)=200; //? EBX=$00000004(=4); SF=0; LEA(B[2],EAX); MOV([EAX],EBX); MOV(EBX,EAX); ADD(21,EAX); // 6. //? AL=%0001_0000; (type int8 AL)=16; (type uns8 AH)=1; //? EBX=$001900FB(=1638651); (type int8 BL)=-5; AF=1; MOV(&B,EAX); ujra: MOV([EAX],EBX); INC(EAX); CMP(BL,-8); JA ujra; SUB(&B,EAX); // 7. //? AL=$01(=1); EBX=$00FB1BF5(=16456693); (type int8 BH)=27; PF=0; MOV(-21,EAX); INTMUL(4,EAX,ECX); MOV(D[-4],EBX); SHLD(3,EAX,EBX); // 8. //? EAX=$FFFFFFEB(=-21=4294967275); BX=$00CF(=207); (type uns8 AL)=235; //? (type uns8 CH)=255; CL=$AC(=-84=172); CF=1; SF=1; MOV(D[4],EAX); CDQ; ADD(DL,AL); ADC(DH,AH); // 9. //? AL=$2F(=47); AX=$002F(=47); EDX=$00000000(=0); //? CF=0; PF=1; SF=0; MOV(-25,EAX); CDQ; MOV(6,EBX); IDIV(EBX); ADD(DL,BL); // 10. //? DL=$FF(=-1=255); AX=$FFFC(=-4=65532); (type uns8 AL)=252; //? BL=$05(=5); OF=0; end zh2_52;//38+12 Procedure zh2_53(VAL k:uns8; VAL i:int32; VAR j:int16);@nodisplay;@cdecl; Static B: byte[ ]:=[-14,13,-5,52]; W: word[ ]:=[19,-41]; D:dword[ ]:=[-39,29]; VAR x:int8; y:int16; z:int32; begin zh2_53;// Az eljaras hivasa: zh2_53(8, -5, word_var) MOV(i,EAX); MOV(3,ECX); ismet: ROL(CL,AL); DEC(CX); JNZ ismet; // 1. //? EAX=$FFFFFFFE(=-2=4294967294); ECX=$00000000(=0); CF=0; LEA(j,EBX);SUB(EBP,EBX); LEA(x,EAX); SUB(ESP,EAX); // 2. //? (type uns8 BL)=16; (type int32 EBX)=16; //? (type uns8 AL)=7; EAX=$00000007(=7); CF=0; MOV(D[1],EAX); MOV(D[-8],EBX); // 3. //? (type uns8 AH)=255; (type uns8 AL)=255; EAX=$1DFFFFFF(=503316479); //? EBX=$34FB0DF2(=888868338); (type int8 BL)=-14; MOV(-44,EAX); MOV(EAX,EBX); ROL(3,EAX); // 4. //? (type int8 AL)=-89; (type uns8 AH)=254; //? (type uns8 BL)=212; EBX=$FFFFFFD4(=-44=4294967252); CF=1; MOV(-3,EAX); MOV(ESP,EBX); PUSH(EAX); PUSH(EBX);SUB(ESP,EBX); ADD([ESP+4],EAX); // 5. //? (type int8 AH)=-1; (type uns8 AL)=250; //? EBX=$00000008(=8); CF=1; LEA(B[3],EAX); MOV([EAX],EBX); MOV(EBX,EAX); SUB(57,EAX); // 6. //? AL=%1111_1011; (type int8 AL)=-5; (type uns8 AH)=18; //? EBX=$D7001334(=-687860940=3607106356); (type int8 BL)=52; PF=0; MOV(&B,EAX); ujra: MOV([EAX],EBX); INC(EAX); OR(BL,BL); JNZ ujra; SUB(&B,EAX); // 7. //? AL=$06(=6); EBX=$D9FFD700(=-637544704=3657422592); (type int8 BH)=-41; CF=0; MOV(17,EAX); LEA ([EAX+EAX*4],ECX); MOV(D,EBX); SHLD(3,EBX,EAX); // 8. //? EAX=$0000008F(=143); BX=$FFD9(=-39=65497); (type uns8 AL)=143; //? (type uns8 CH)=0; CL=$55(=85); CF=0; SF=0; MOV(D[2],EAX); CDQ; ADD(DL,AL); ADC(DH,AH); // 9. //? AL=$FF(=-1=255); AX=$FFFF(=-1=65535); //? EDX=$00000000(=0); CF=0; PF=1; SF=1; MOV(-39,EAX); CDQ; MOV(7,EBX); IDIV(EBX); ADD(DL,BL); // 10. //? DL=$FC(=-4=252); AX=$FFFB(=-5=65531); (type uns8 AL)=251; //? BL=$03(=3); CF=1; end zh2_53;//38+12 Procedure zh2_54(VAR j:int16; VAL k:int16; VAL i:int32);@nodisplay;@cdecl; Static B: byte[ ]:=[-15,23,-7,22]; W: word[ ]:=[22,-51]; D:dword[ ]:=[25,-25]; VAR x:int16; y:int8; z:int32; begin zh2_54;// Az eljaras hivasa: zh2_54(word_var, 5, -5) MOVSX(k,EAX); MOV(9,EBX); ismet: DEC(BX); SUB(BL,AL); DEC(BX); JNS ismet; // 1. //? EAX=$000000F1(=241); EBX=$0000FFFF(=65535); CF=0; LEA(j,EBX);SUB(ESP,EBX); LEA(y,EAX); SUB(EBP,EAX); // 2. //? (type uns8 BL)=16; (type int32 EBX)=16; //? (type uns8 AL)=253; EAX=$FFFFFFFD(=-3=4294967293); CF=1; MOV(D[-1],EAX); MOVSX(B[3],EBX); // 3. //? (type uns8 AH)=25; (type uns8 AL)=255; EAX=$000019FF(=6655); //? EBX=$00000016(=22); (type int8 BL)=22; MOV(-45,EAX); MOV(EAX,EBX); ROL(12,EAX); // 4. //? (type int8 AL)=-1; (type uns8 AH)=63; //? (type uns8 BL)=211; EBX=$FFFFFFD3(=-45=4294967251); CF=1; MOV(-21,EAX); MOV(ESP,EBX); PUSH(EAX); ADD([EBX-4],EAX); SUB(ESP,EBX); // 5. //? (type int8 AH)=-1; (type uns8 AL)=214; //? EBX=$00000004(=4); SF=0; LEA(B[2],EAX); MOV([EAX],EBX); MOV(EBX,EAX); ADD(15,EAX); // 6. //? AL=%0000_1000; (type int8 AL)=8; (type uns8 AH)=23; //? EBX=$001616F9(=1447673); (type int8 BL)=-7; AF=1; MOV(&B,EAX); ujra: MOV([EAX],EBX); INC(EAX); CMP(BL,0); JG ujra; SUB(&B,EAX); // 7. //? AL=$01(=1); EBX=$16F917F1(=385423345); (type int8 BH)=23; PF=0; MOV(-23,EAX); INTMUL(3,EAX,ECX); MOV(D,EBX); SHLD(5,EAX,EBX); // 8. //? EAX=$FFFFFFE9(=-23=4294967273); BX=$033F(=831); (type uns8 AL)=233; //? (type uns8 CH)=255; CL=$BB(=-69=187); CF=0; SF=0; MOV(-23,EAX); CDQ; ADD(DL,AL); ADC(DH,AH); // 9. //? AL=$E8(=-24=232); AX=$FFE8(=-24=65512); EDX=$FFFFFFFF(=-1=4294967295); //? CF=1; PF=1; SF=1; MOV(D[0],EAX); CDQ; MOV(9,ECX); IDIV(ECX); ADD(DL,CL); // 10. //? DL=$07(=7); AX=$0002(=2); (type uns8 AL)=2; //? CL=$10(=16); OF=0; end zh2_54;//38+12