bits 8

@define case_result %numb
@define test_cases %int
@define test_end %text
@define test_end_data '\n'
@define total_tests %uint
imm r1 1

out total_tests 10

// mlt
    sub r1 (@mlt 0x69 0x42) 18
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// div (rounds towards 0)
    sub r1 (@div 250 3) 83
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// mod
    sub r1 (@mod 250 3) 1
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 2

// bsr
    sub r1 (@bsr 0x80 7) 1
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// bsl
    sub r1 (@bsl 1 7) 0x80
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// bss
    sub r1 (@bss 0x80 7) 0xff
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// sete
// setne
// setg
// setl
// setge
// setle
// setc
// setnc

// sdiv (rounds towards 0)
    sub r1 (@sdiv 250 3) 254
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// sbrl
// sbrg
// sble
// sbge

// ssetg
// ssetl
// ssetge
// ssetle

// abs
    sub r1 (@abs 0x96) 0x6a
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// umlt
    sub r1 (@umlt 0x69 0x42) 0x1b
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1

// sumlt
    sub r1 (@sumlt 0x97 0x42) 0xe4
    out case_result r1
out test_cases 1
out test_end test_end_data
imm r1 1
