diff options
Diffstat (limited to 'subx/examples/ex5.subx')
-rw-r--r-- | subx/examples/ex5.subx | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/subx/examples/ex5.subx b/subx/examples/ex5.subx index faecdcfb..51bc19a0 100644 --- a/subx/examples/ex5.subx +++ b/subx/examples/ex5.subx @@ -10,9 +10,6 @@ # 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 # main: - # prolog - 55/push-EBP - 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # allocate x on the stack 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # subtract 4 bytes from ESP @@ -20,7 +17,7 @@ # fd = 0 (stdin) bb/copy . . . . . . . 0/imm32 # copy 0 to EBX # initialize x (location to write result to) - 89/copy 3/mod/direct 1/rm32/ECX . . . 5/r32/EBP . . # copy EBP to ECX + 8d/copy-address 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none 1/r32/ECX 4/disp8 . # copy ESP+4 to ECX # size = 1 character ba/copy . . . . . . . 1/imm32 # copy 1 to EDX # read(fd, x, size) @@ -31,7 +28,7 @@ # fd = 1 (stdout) bb/copy . . . . . . . 1/imm32 # copy 1 to EBX # initialize x (location to read from) - 89/copy 3/mod/direct 1/rm32/ECX . . . 5/r32/EBP . . # copy EBP to ECX + 8d/copy-address 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none 1/r32/ECX 4/disp8 . # copy ESP+4 to ECX # size = 1 character ba/copy . . . . . . . 1/imm32 # copy 1 to EDX # write(fd, x, size) |