diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-09-22 10:29:12 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-09-22 10:29:12 -0700 |
commit | f05c2800d31b2586de1bd60786db7c4481b5736f (patch) | |
tree | 163972fe777fe97b50458862c3d72b153932e9fa /subx/examples | |
parent | 1a4de9dd58201bb57a07ea931d1764064fc52e64 (diff) | |
download | mu-f05c2800d31b2586de1bd60786db7c4481b5736f.tar.gz |
4589
Diffstat (limited to 'subx/examples')
-rw-r--r-- | subx/examples/ex5.subx | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/subx/examples/ex5.subx b/subx/examples/ex5.subx index 16b87bc8..4502a4bd 100644 --- a/subx/examples/ex5.subx +++ b/subx/examples/ex5.subx @@ -11,35 +11,35 @@ # main: # prolog - 55/push # push EBP - 89/copy 3/mod/direct 5/rm32/EBP 4/r32/ESP # copy ESP to EBP + 55/push . . . . . . . . # 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 + 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # subtract 4 bytes from ESP # read(stdin, x, 1) # fd = 0 (stdin) - bb/copy 0/imm32 # copy 0 to EBX + 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 + 89/copy 3/mod/direct 1/rm32/ECX . . . 5/r32/EBP . . # copy EBP to ECX # size = 1 character - ba/copy 1/imm32 # copy 1 to EDX + ba/copy . . . . . . . 1/imm32 # copy 1 to EDX # read(fd, x, size) - b8/copy 3/imm32/read # copy 3 to EAX + b8/copy . . . . . . . 3/imm32/read # copy 3 to EAX cd/syscall 0x80/imm8 # write(stdout, x, 1) # fd = 1 (stdout) - bb/copy 1/imm32 # copy 1 to EBX + 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 + 89/copy 3/mod/direct 1/rm32/ECX . . . 5/r32/EBP . . # copy EBP to ECX # size = 1 character - ba/copy 1/imm32 # copy 1 to EDX + ba/copy . . . . . . . 1/imm32 # copy 1 to EDX # write(fd, x, size) - b8/copy 4/imm32/write # copy 4 to EAX + b8/copy . . . . . . . 4/imm32/write # copy 4 to EAX cd/syscall 0x80/imm8 # exit(EBX) - b8/copy 1/imm32/exit # copy 1 to EAX + b8/copy . . . . . . . 1/imm32/exit # copy 1 to EAX cd/syscall 0x80/imm8 # vim:ft=subx:nowrap |