diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-10-14 22:25:57 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-10-14 22:25:57 -0700 |
commit | 6528a08992b3518c86628260c2318a792abaa6bd (patch) | |
tree | c3125f2f254059ee978b2759f82dd5b4cd191c32 /subx/051test.subx | |
parent | a9a5718d086d9df52b84b96a6ab4ee751dc26a5e (diff) | |
download | mu-6528a08992b3518c86628260c2318a792abaa6bd.tar.gz |
4699
Diffstat (limited to 'subx/051test.subx')
-rw-r--r-- | subx/051test.subx | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/subx/051test.subx b/subx/051test.subx index bbae6eff..3d5a1de7 100644 --- a/subx/051test.subx +++ b/subx/051test.subx @@ -6,7 +6,8 @@ # main: (manual test if this is the last file loaded) # check-ints-equal(34, 34) == 1 - 68/push 34/imm32 + 68/push "error in check-ints-equal"/imm32 + 68/push 35/imm32 68/push 34/imm32 e8/call check-ints-equal/disp32 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP @@ -29,33 +30,36 @@ check-ints-equal: # (a : int, b : int, msg : (address array byte)) -> boolean # if EAX == b/EBX 39/compare 3/mod/direct 0/rm32/EAX . . . 3/r32/EBX . . # compare EAX and EBX 75/jump-if-unequal $check-ints-equal:else/disp8 - # print('.') + # _write(2/stderr, '.') # push args 68/push "."/imm32 + 68/push 2/imm32/stderr # call - e8/call write-stderr/disp32 + e8/call _write/disp32 # discard arg - 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # return eb/jump $check-ints-equal:end/disp8 # else: $check-ints-equal:else: # copy third arg (msg) into ECX 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 1/r32/ECX 0x10/disp8 . # copy *(EBP+16) to ECX - # print(ECX) + # _write(2/stderr, ECX) # push args 51/push-ECX + 68/push 2/imm32/stderr # call - e8/call write-stderr/disp32 + e8/call _write/disp32 # discard arg - 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # print newline # push args 68/push Newline/imm32 + 68/push 2/imm32/stderr # call - e8/call write-stderr/disp32 + e8/call _write/disp32 # discard arg - 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP + 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32 # add to ESP # increment Num-test-failures ff 0/subop/increment 0/mod/indirect 5/rm32/.disp32 . . . Num-test-failures/disp32 # increment *Num-test-failures $check-ints-equal:end: |