12.10.2013, 05:44
(
Последний раз редактировалось BigETI; 12.10.2013 в 06:38.
)
pawn Код:
#define doAdd%2(%0,%1) ((%0)+(%1))
pawn Код:
#define doMul%2(%0,%1) ((%0)*(%1))
or
Thanks to topics like #emit and Abstract machine and emit:
pawn Код:
new a, b, c;
// Setting "a" and "b"
#emit CONST.pri 10
#emit STOR.S.pri a
#emit CONST.pri 20
#emit STOR.pri b
// c=a+b
#emit LOAD.S.pri a
#emit LOAD.S.alt b
#emit ADD
#emit STOR.S.pri c
optimized:
pawn Код:
new a, b, c;
// Stores "10" into "a" and "20" into "b", adds both values and stores into "c"
#emit CONST.pri 10
#emit CONST.alt 20
#emit STOR.S.pri a
#emit STOR.S.alt b
#emit ADD
#emit STOR.S.pri c
pawn Код:
new a, b, c;
// Setting "a" and "b"
#emit CONST.pri 10
#emit STOR.S.pri a
#emit CONST.pri 20
#emit STOR.pri b
// c=a*b
#emit LOAD.S.pri a
#emit LOAD.S.alt b
#emit SMUL
#emit STOR.S.pri c
optimized:
pawn Код:
new a, b, c;
// Stores "10" into "a" and "20" into "b", multiplies both values and stores into "c"
#emit CONST.pri 10
#emit CONST.alt 20
#emit STOR.S.pri a
#emit STOR.S.alt b
#emit SMUL
#emit STOR.S.pri c