Function MyAdd { Buffer DataMem as Long*2 Buffer Code ExecMem as byte*32 Address=0 EmbByte(0x31, 0xC0) EmbByteLong(0x3,0x5, DataMem(0)) ' add eax, [DataMem(0)] EmbByteLong(0x3,0x5, DataMem(1)) ' add eax, [DataMem(1)] EmbLong(0xa3, DataMem(0)) ' mov [DataMem(0)], eax Rem : EmbByte(0x31, 0xC0) ' xor eax, eax Ret() ' Return =lambda ExecMem, DataMem (a as double, b as double)-> { Return DataMem, 0:=a, 1:=b Try ok { Execute Code ExecMem, 0 } If not ok then { =Uint(Error) } Else { =Eval(DataMem, 0) } } Sub Ret() Return ExecMem, Address:=0xC3 Address++ End Sub Sub EmbByte() Return ExecMem, Address:=Number, Address+1:=Number Address+=2 End Sub Sub EmbLong() Return ExecMem, Address:=Number, Address+1:=Number as Long Address+=5 End Sub Sub EmbByteLong() Return ExecMem, Address:=Number, Address+1:=Number, Address+2:=Number as Long Address+=6 End Sub } \\ Produce a lambda function with machine code inside UnsingedAdd=MyAdd() Print UnsingedAdd(12, 7), UnsingedAdd(500, 100)