#include #include "prcalc.h" #include int main (int argc, char** argv) { prc_context ctx; uint64_t op1=0, op2=0; prc_init_context(&ctx); op1 = 10; op2 = 10; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_add_stack(&ctx); printf("ADD(%20." PRIi64 ", %20." PRIi64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); op1 = -1; op2 = 10; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_add_stack(&ctx); printf("ADD(%20." PRIi64 ", %20." PRIi64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); op1 = -1; op2 = -10; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_add_stack(&ctx); printf("ADD(%20." PRIi64 ", %20." PRIi64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); op1 = 0b0111111111111111111111111111111111111111111111111111111111111111; op2 = 1; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_add_stack(&ctx); printf("ADD(%20." PRIi64 ", %20." PRIi64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); op1 = 2; op2 = 0b1111111111111111111111111111111111111111111111111111111111111111; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_add_stack(&ctx); printf("ADD(%20." PRIu64 ", %20." PRIu64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); op1 = 4; op2 = 25; prc_push(&ctx, op1); prc_push(&ctx, op2); prc_mul_stack(&ctx); printf("ADD(%20." PRIi64 ", %20." PRIi64 ")\tuint64_t: %20." PRIu64 "\tint64_t: %20." PRIi64 "\tHex: %16.lx\tFlags: %d\n", op1, op2, ctx.registers.A, ctx.registers.A, ctx.registers.A, ctx.registers.FLAGS); //prc_mul_stack(&ctx); //printf("RESULT: %ld \nFLAGS: %d\n", ctx.registers.A, ctx.registers.FLAGS); }