diff options
Diffstat (limited to '055stream.subx')
-rw-r--r-- | 055stream.subx | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/055stream.subx b/055stream.subx index 28267e05..1250ffdc 100644 --- a/055stream.subx +++ b/055stream.subx @@ -1,9 +1,9 @@ # streams: data structure for operating on arrays in a stateful manner # # A stream looks like this: -# write : int # index at which writes go -# read : int # index that we've read until -# data : (array byte) # prefixed by length as usual +# write: int # index at which writes go +# read: int # index that we've read until +# data: (array byte) # prefixed by length as usual # # some primitives for operating on streams: # - clear-stream (clears everything but the data length) @@ -14,7 +14,7 @@ # . op subop mod rm32 base index scale r32 # . 1-3 bytes 3 bits 2 bits 3 bits 3 bits 3 bits 2 bits 2 bits 0/1/2/4 bytes 0/1/2/4 bytes -clear-stream: # f : (addr stream byte) +clear-stream: # f: (addr stream byte) # . prologue 55/push-ebp 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp @@ -23,15 +23,15 @@ clear-stream: # f : (addr stream byte) 51/push-ecx # eax = f 8b/copy 1/mod/*+disp8 5/rm32/ebp . . 0/r32/eax 8/disp8 . # copy *(ebp+8) to eax - # var count/ecx : int = f->length + # var count/ecx: int = f->length 8b/copy 1/mod/*+disp8 0/rm32/eax . . . 1/r32/ecx 8/disp8 . # copy *(eax+8) to ecx - # var max/ecx : (addr byte) = &f->data[f->length] + # var max/ecx: (addr byte) = &f->data[f->length] 8d/copy-address 1/mod/*+disp8 4/rm32/sib 0/base/eax 1/index/ecx . 1/r32/ecx 0xc/disp8 . # copy eax+ecx+12 to ecx # f->write = 0 c7 0/subop/copy 0/mod/direct 0/rm32/eax . . . . . 0/imm32 # copy to *eax # f->read = 0 c7 0/subop/copy 1/mod/*+disp8 0/rm32/eax . . . . 4/disp8 0/imm32 # copy to *(eax+4) - # var curr/eax : (addr byte) = f->data + # var curr/eax: (addr byte) = f->data 81 0/subop/add 3/mod/direct 0/rm32/eax . . . . . 0xc/imm32 # add to eax $clear-stream:loop: # if (curr >= max) break @@ -51,7 +51,7 @@ $clear-stream:end: 5d/pop-to-ebp c3/return -rewind-stream: # f : (addr stream byte) +rewind-stream: # f: (addr stream byte) # . prologue 55/push-ebp 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . . # copy esp to ebp |