From 538f24c296f6ddd0688c3d312db08cfe48919cdd Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Wed, 10 Jul 2019 11:57:08 -0700 Subject: . --- subx/apps/survey | Bin 39564 -> 39573 bytes subx/apps/survey.subx | 10 +++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'subx') diff --git a/subx/apps/survey b/subx/apps/survey index 1c70d7a5..e50905f4 100755 Binary files a/subx/apps/survey and b/subx/apps/survey differ diff --git a/subx/apps/survey.subx b/subx/apps/survey.subx index dcdfe659..26d863cb 100644 --- a/subx/apps/survey.subx +++ b/subx/apps/survey.subx @@ -354,8 +354,8 @@ compute-offsets: # in : (address buffered-file), segments : (address stream {st # if slice-starts-with?(word-slice, "#") # comment # continue # if is-label?(word-slice) - # x : (address number) = get-or-insert(labels, name) - # *x = segment-offset + # x : (address label-info) = get-or-insert(labels, name) + # x->segment-offset = segment-offset # trace("label '", word-slice, "' is in segment '", curr-segment-name, "'") # trace("label '", word-slice, "' is at offset 0x", file-offset) # # labels occupy no space, so no need to increment offsets @@ -474,7 +474,11 @@ $compute-offsets:label: e8/call get-or-insert-slice/disp32 # . . discard args 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32 # add to ESP - # TODO: *x = segment-offset + # x->segment-offset = segment-offset + # . EBX = segment-offset + 8f 0/subop/pop 0/mod/indirect 5/rm32/.disp32 . . . compute-offsets:segment-offset/disp32 + # . x->segment-offset = EBX + 89/copy 1/mod/*+disp8 0/rm32/EAX . . . 3/r32/EBX 4/disp8 . # copy EBX to *(EAX+4) # trace-slsls("label '" word-slice/EDX "' is in segment '" current-segment-name "'") # . . push args 68/push "'"/imm32 -- cgit 1.4.1-2-gfad0