diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-09-21 16:55:46 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-09-21 16:56:37 -0700 |
commit | 9372c16c00f032fe72e921723c2dc9ab88486ff6 (patch) | |
tree | 74f1f3074675e90a2f53f2799c55bd5a9d9618af /subx/examples | |
parent | 9ce8fd1cc1770d7e41d214421237ecea7b1efb4e (diff) | |
download | mu-9372c16c00f032fe72e921723c2dc9ab88486ff6.tar.gz |
4581
Even more cuddling. We want to keep lines short where the opcode and operands are self-explanatory. If there are any implicit registers, etc., we'll continue to do the table layout. The first two columns look messy now; let's see how this goes. Maybe I'll give up on the tabular layout altogether, just string args with a single space.
Diffstat (limited to 'subx/examples')
-rw-r--r-- | subx/examples/ex1.2.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex10.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex2.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex3.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex4.subx | 6 | ||||
-rw-r--r-- | subx/examples/ex5.subx | 6 | ||||
-rw-r--r-- | subx/examples/ex6.subx | 4 | ||||
-rw-r--r-- | subx/examples/ex7.subx | 18 | ||||
-rw-r--r-- | subx/examples/ex8.subx | 2 | ||||
-rw-r--r-- | subx/examples/ex9.subx | 2 |
10 files changed, 23 insertions, 23 deletions
diff --git a/subx/examples/ex1.2.subx b/subx/examples/ex1.2.subx index 7dca4ec3..a355ef6b 100644 --- a/subx/examples/ex1.2.subx +++ b/subx/examples/ex1.2.subx @@ -15,6 +15,6 @@ bb/copy 2a/imm32 # copy 42 to EBX # exit(EBX) b8/copy 1/imm32 # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # vim:ft=subx diff --git a/subx/examples/ex10.subx b/subx/examples/ex10.subx index 1b0b0a29..edcda506 100644 --- a/subx/examples/ex10.subx +++ b/subx/examples/ex10.subx @@ -31,7 +31,7 @@ # exit(EAX) 89/copy 3/mod/direct 3/rm32/EBX . . . 0/r32/EAX . . # copy EAX to EBX b8/copy . . . . . . . 1/imm32 # copy 1 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # compare two null-terminated ascii strings # reason for the name: the only place we should have null-terminated ascii strings is from commandline args diff --git a/subx/examples/ex2.subx b/subx/examples/ex2.subx index 0aad9232..e0c76712 100644 --- a/subx/examples/ex2.subx +++ b/subx/examples/ex2.subx @@ -15,6 +15,6 @@ 81 0/subop/add 3/mod/direct 3/rm32/EBX 1/imm32 # add 1 to EBX # exit(EBX) b8/copy 1/imm32 # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # vim:ft=subx diff --git a/subx/examples/ex3.subx b/subx/examples/ex3.subx index 41a8900a..30a8d5d3 100644 --- a/subx/examples/ex3.subx +++ b/subx/examples/ex3.subx @@ -30,6 +30,6 @@ $loop: $exit: # exit(EBX) b8/copy 1/imm32 # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # vim:ft=subx:nowrap diff --git a/subx/examples/ex4.subx b/subx/examples/ex4.subx index 512978d1..810278e6 100644 --- a/subx/examples/ex4.subx +++ b/subx/examples/ex4.subx @@ -18,7 +18,7 @@ ba/copy 1/imm32 # copy 1 to EDX # read(fd, x, size) b8/copy 3/imm32/read # copy 3 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # write(stdout, x, 1) # fd = 1 (stdout) @@ -29,11 +29,11 @@ ba/copy 1/imm32 # copy 1 to EDX # write(fd, x, size) b8/copy 4/imm32/write # copy 4 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # exit(EBX) b8/copy 1/imm32/exit # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 == data x: diff --git a/subx/examples/ex5.subx b/subx/examples/ex5.subx index cafad042..16b87bc8 100644 --- a/subx/examples/ex5.subx +++ b/subx/examples/ex5.subx @@ -25,7 +25,7 @@ ba/copy 1/imm32 # copy 1 to EDX # read(fd, x, size) b8/copy 3/imm32/read # copy 3 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # write(stdout, x, 1) # fd = 1 (stdout) @@ -36,10 +36,10 @@ ba/copy 1/imm32 # copy 1 to EDX # write(fd, x, size) b8/copy 4/imm32/write # copy 4 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # exit(EBX) b8/copy 1/imm32/exit # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # vim:ft=subx:nowrap diff --git a/subx/examples/ex6.subx b/subx/examples/ex6.subx index 92ad4c21..0213ad7e 100644 --- a/subx/examples/ex6.subx +++ b/subx/examples/ex6.subx @@ -19,11 +19,11 @@ 8b/copy 0/mod/indirect 5/rm32/.disp32 2/r32/EDX size/disp32 # copy *size to EDX # write(fd, x, size) b8/copy 4/imm32/write # copy 4 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # exit(EBX) b8/copy 1/imm32/exit # copy 1 to EAX - cd/syscall 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 == data size: # size of string diff --git a/subx/examples/ex7.subx b/subx/examples/ex7.subx index dd615920..a1bb19c8 100644 --- a/subx/examples/ex7.subx +++ b/subx/examples/ex7.subx @@ -19,14 +19,14 @@ bb/copy . . . . . . . filename/imm32 # copy to EBX b9/copy . . . . . . . 0x180/imm32/fixed-perms # copy to ECX b8/copy . . . . . . . 8/imm32/creat # copy 8 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # stream = open(filename, O_WRONLY, 0) # we can't use 'fd' because it looks like a hex byte bb/copy . . . . . . . filename/imm32 # copy to EBX b9/copy . . . . . . . 1/imm32/wronly # copy 1 to ECX ba/copy . . . . . . . 0x180/imm32/fixed-perms # copy 0 to EDX b8/copy . . . . . . . 5/imm32/open # copy 5 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # save stream bb/copy . . . . . . . stream/imm32 # copy to EBX 89/copy 0/mod/indirect 3/rm32/EBX 0/r32/EAX # copy EAX to *EBX @@ -39,7 +39,7 @@ b9/copy . . . . . . . a/imm32 # copy to ECX ba/copy . . . . . . . 1/imm32/size # copy 1 to EDX b8/copy . . . . . . . 4/imm32/write # copy 4 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # close(stream) # load stream @@ -47,14 +47,14 @@ 8b/copy 0/mod/indirect 3/rm32/EBX 3/r32/EBX # copy *EBX to EBX # b8/copy . . . . . . . 6/imm32/close # copy 6 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # stream = open(filename, O_RDONLY, 0) bb/copy . . . . . . . filename/imm32 # copy to EBX b9/copy . . . . . . . 0/imm32/rdonly # copy 0 to ECX ba/copy . . . . . . . 0x180/imm32/fixed-perms # copy to EDX b8/copy . . . . . . . 5/imm32/open # copy 5 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # save stream bb/copy . . . . . . . stream/imm32 # copy to EBX 89/copy 0/mod/indirect 3/rm32/EBX 0/r32/EAX # copy EAX to *EBX @@ -67,7 +67,7 @@ b9/copy . . . . . . . b/imm32 # copy to ECX ba/copy . . . . . . . 1/imm32/size # copy 1 to EDX b8/copy . . . . . . . 3/imm32/read # copy 3 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # close(stream) # load stream @@ -75,12 +75,12 @@ 8b/copy 0/mod/indirect 3/rm32/EBX 3/r32/EBX # copy *EBX to EBX # b8/copy . . . . . . . 6/imm32/close # copy 6 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # unlink(filename) bb/copy . . . . . . . filename/imm32 # copy to EBX b8/copy . . . . . . . 0xa/imm32/unlink # copy 10 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 # exit(b) # load b @@ -88,7 +88,7 @@ 8b/copy 0/mod/indirect 3/rm32/EBX 3/r32/EBX # copy *EBX to EBX # b8/copy . . . . . . . 1/imm32/exit # copy 1 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 == data stream: diff --git a/subx/examples/ex8.subx b/subx/examples/ex8.subx index de0fa188..f06e8c92 100644 --- a/subx/examples/ex8.subx +++ b/subx/examples/ex8.subx @@ -37,7 +37,7 @@ # exit(EAX) 89/copy 3/mod/direct 3/rm32/EBX . . . 0/r32/EAX . . # copy EAX to EBX b8/copy . . . . . . . 1/imm32/exit # copy 1 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 ascii_length: # (s) # initialize s (EDX) diff --git a/subx/examples/ex9.subx b/subx/examples/ex9.subx index aa519dc1..91e62159 100644 --- a/subx/examples/ex9.subx +++ b/subx/examples/ex9.subx @@ -35,7 +35,7 @@ # exit(EAX) 89/copy 3/mod/direct 3/rm32/EBX . . . 0/r32/EAX . . # copy EAX to EBX b8/copy . . . . . . . 1/imm32/exit # copy 1 to EAX - cd/syscall . . . . . . . 0x80/imm8 # int 80h + cd/syscall 0x80/imm8 ascii_difference: # (s1, s2) : null-terminated ascii strings # a = first letter of s1 (ECX) |