diff options
Diffstat (limited to '304screen.subx')
-rw-r--r-- | 304screen.subx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/304screen.subx b/304screen.subx index 1537a9b1..8ec33fd5 100644 --- a/304screen.subx +++ b/304screen.subx @@ -131,6 +131,19 @@ $print-string-to-real-screen:end: 5d/pop-to-ebp c3/return +print-slice-to-real-screen: # s: (addr slice) + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # + (write-slice-buffered Stdout *(ebp+8)) + (flush Stdout) +$print-slice-to-real-screen:end: + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + print-stream-to-real-screen: # s: (addr stream byte) # . prologue 55/push-ebp @@ -240,6 +253,8 @@ write-int32-decimal-buffered: # f: (addr buffered-file), n: int # . prologue 55/push-ebp 89/<- %ebp 4/r32/esp + # . save registers + 51/push-ecx # var ecx: (stream byte 16) 81 5/subop/subtract %esp 0x10/imm32 68/push 0x10/imm32/size @@ -249,6 +264,10 @@ write-int32-decimal-buffered: # f: (addr buffered-file), n: int (write-int32-decimal %ecx *(ebp+0xc)) (write-stream-data *(ebp+8) %ecx) $write-int32-decimal-buffered:end: + # . reclaim locals + 81 0/subop/add %esp 0x1c/imm32 + # . restore registers + 59/pop-to-ecx # . epilogue 89/<- %esp 5/r32/ebp 5d/pop-to-ebp |