"" 4 jmp , jmps 2 5 .
() 4 , :
jmp short $+4 ; the "short" forces a 2 byte relative branch
nop
nop
, N , nop.
, , :
void ObjectCodeEmitNByteNop(natural n)
{
switch(n)
{
case 0:
break;
case 1:
ObjectCodeEmitByte(0x90);
break;
case 2:
ObjectCodeEmitWord(0x9066);
break;
case 3:
ObjectCodeEmitThreeByteNOP();
break;
case 4:
ObjectCodeEmitFourByteNOP();
break;
case 5:
#if 0
ObjectCodeEmitByte(0x05);
ObjectCodeEmitDword(0);
#else
ObjectCodeEmitByte(0x0F);
ObjectCodeEmitDword(0x0000441F);
#endif
break;
case 6:
ObjectCodeEmitWord(0x9B8D);
ObjectCodeEmitDword(0x00000000);
break;
case 7:
ObjectCodeEmitByte(0x8D);
ObjectCodeEmitWord(0x24A4);
ObjectCodeEmitDword(0x00000000);
break;
case 8:
ObjectCodeEmitDword(0x00841F0F);
ObjectCodeEmitDword(0x00000000);
break;
case 9:
ObjectCodeEmitByte(0x66);
ObjectCodeEmitDword(0x00841F0F);
ObjectCodeEmitDword(0x00000000);
break;
default:
{ ObjectCodeEmitJmpRelativeShort(ObjectCodeSize+n);
ObjectCodeEmitNBreakpoints(n-2);
}
}
}
, ,
, , , . " ".