diff options
Diffstat (limited to 'projects/12/OutputTest/Output.vm')
-rw-r--r-- | projects/12/OutputTest/Output.vm | 85 |
1 files changed, 6 insertions, 79 deletions
diff --git a/projects/12/OutputTest/Output.vm b/projects/12/OutputTest/Output.vm index e291708..dd83b63 100644 --- a/projects/12/OutputTest/Output.vm +++ b/projects/12/OutputTest/Output.vm @@ -1702,90 +1702,17 @@ goto WHILE_EXP0 label WHILE_END0 push constant 0 return -function Output.printInt 4 -push argument 0 -push constant 0 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 48 -call Output.printChar 1 -pop temp 0 -push constant 0 -return -label IF_FALSE0 -push argument 0 +function Output.printInt 1 +push constant 6 +call String.new 1 pop local 0 +push local 0 push argument 0 -push constant 0 -lt -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 45 -call Output.printChar 1 +call String.setInt 2 pop temp 0 push local 0 -neg -pop local 0 -label IF_FALSE1 -push constant 5 -call Array.new 1 -pop local 3 -push constant 0 -pop local 2 -label WHILE_EXP0 -push local 0 -push constant 0 -gt -not -if-goto WHILE_END0 -push local 0 -push constant 10 -call Math.divide 2 -pop local 1 -push local 2 -push local 3 -add -push constant 48 -push local 0 -add -push local 1 -push constant 10 -call Math.multiply 2 -sub -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 1 -pop local 0 -push local 2 -push constant 1 -add -pop local 2 -goto WHILE_EXP0 -label WHILE_END0 -label WHILE_EXP1 -push local 2 -push constant 0 -gt -not -if-goto WHILE_END1 -push local 2 -push constant 1 -sub -pop local 2 -push local 2 -push local 3 -add -pop pointer 1 -push that 0 -call Output.printChar 1 +call Output.printString 1 pop temp 0 -goto WHILE_EXP1 -label WHILE_END1 push constant 0 return function Output.println 0 |