macro puts(2) { @1 = 0; // write @2 = /1/; // ptr @3 = /2/; // size system(); } macro putchar(1) { @1 = 0; // write @2 = 10; // ptr @3 = 1; // size @10 = /1/; // value system(); } @10 = 1; jz(@10, continue); // conditional jump! puts(["hi"], [2]); continue: putchar([10]); puts([" hello world"], [15]); putchar([10]); putchar([10]); exit(0);