From 294a15206329d2992df073622fb5ce2c1e96001b Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Wed, 17 Jul 2019 00:47:11 -0700 Subject: 5410 - 4 examples passing Clean up other examples as well to satisfy the requirements in commit 5404. --- subx/examples/ex10 | Bin 163 -> 195 bytes subx/examples/ex10.subx | 2 ++ subx/examples/ex12.subx | 1 + subx/examples/ex2 | Bin 97 -> 129 bytes subx/examples/ex2.subx | 3 +++ subx/examples/ex3 | Bin 114 -> 146 bytes subx/examples/ex3.subx | 3 +++ subx/examples/ex4.subx | 1 + subx/examples/ex5 | Bin 139 -> 171 bytes subx/examples/ex5.subx | 2 ++ subx/examples/ex6.subx | 1 + subx/examples/ex7.subx | 1 + subx/examples/ex8 | Bin 133 -> 165 bytes subx/examples/ex8.subx | 3 +++ subx/examples/ex9 | Bin 127 -> 159 bytes subx/examples/ex9.subx | 3 +++ 16 files changed, 20 insertions(+) (limited to 'subx/examples') diff --git a/subx/examples/ex10 b/subx/examples/ex10 index 9cdfb983..d8ad528e 100755 Binary files a/subx/examples/ex10 and b/subx/examples/ex10 differ diff --git a/subx/examples/ex10.subx b/subx/examples/ex10.subx index fd2ccc08..51cc0a8c 100644 --- a/subx/examples/ex10.subx +++ b/subx/examples/ex10.subx @@ -67,4 +67,6 @@ $argv-equal:false: b8/copy-to-EAX 0/imm32 c3/return +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 diff --git a/subx/examples/ex12.subx b/subx/examples/ex12.subx index 4d43b033..358da1d3 100644 --- a/subx/examples/ex12.subx +++ b/subx/examples/ex12.subx @@ -11,6 +11,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 +Entry: # syscall(mmap, 0x1000) bb/copy-to-EBX Mmap-new-segment/imm32 b8/copy-to-EAX 0x5a/imm32/mmap diff --git a/subx/examples/ex2 b/subx/examples/ex2 index f7ddb783..55a87a3f 100755 Binary files a/subx/examples/ex2 and b/subx/examples/ex2 differ diff --git a/subx/examples/ex2.subx b/subx/examples/ex2.subx index 3605fcc8..025eb0fa 100644 --- a/subx/examples/ex2.subx +++ b/subx/examples/ex2.subx @@ -9,6 +9,7 @@ == code 0x09000000 +Entry: # EBX = 1 bb/copy-to-EBX 1/imm32 # increment EBX @@ -17,4 +18,6 @@ bb/copy-to-EBX 1/imm32 b8/copy-to-EAX 1/imm32/exit cd/syscall 0x80/imm8 +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 diff --git a/subx/examples/ex3 b/subx/examples/ex3 index 884da188..d85aba8e 100755 Binary files a/subx/examples/ex3 and b/subx/examples/ex3 differ diff --git a/subx/examples/ex3.subx b/subx/examples/ex3.subx index c9ad3e38..1d52e87f 100644 --- a/subx/examples/ex3.subx +++ b/subx/examples/ex3.subx @@ -12,6 +12,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 +Entry: # result: EBX = 0 bb/copy-to-EBX 0/imm32 # counter: ECX = 1 @@ -33,4 +34,6 @@ $exit: b8/copy-to-EAX 1/imm32/exit cd/syscall 0x80/imm8 +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 diff --git a/subx/examples/ex4.subx b/subx/examples/ex4.subx index a1f042ed..31c1c10c 100644 --- a/subx/examples/ex4.subx +++ b/subx/examples/ex4.subx @@ -12,6 +12,7 @@ X: == code 0x09000000 +Entry: # syscall(read, stdin, X, 1) # . fd = 0 (stdin) bb/copy-to-EBX 0/imm32 diff --git a/subx/examples/ex5 b/subx/examples/ex5 index 090e1f60..37689c98 100755 Binary files a/subx/examples/ex5 and b/subx/examples/ex5 differ diff --git a/subx/examples/ex5.subx b/subx/examples/ex5.subx index f051a91f..6f5b1d90 100644 --- a/subx/examples/ex5.subx +++ b/subx/examples/ex5.subx @@ -40,4 +40,6 @@ Entry: b8/copy-to-EAX 1/imm32/exit cd/syscall 0x80/imm8 +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 diff --git a/subx/examples/ex6.subx b/subx/examples/ex6.subx index c5999033..a90f11df 100644 --- a/subx/examples/ex6.subx +++ b/subx/examples/ex6.subx @@ -10,6 +10,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 +Entry: # syscall(write, stdout, X, Size) # . fd = 1 (stdout) bb/copy-to-EBX 1/imm32 diff --git a/subx/examples/ex7.subx b/subx/examples/ex7.subx index ee043c86..d3b33f23 100644 --- a/subx/examples/ex7.subx +++ b/subx/examples/ex7.subx @@ -16,6 +16,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 +Entry: # syscall(creat, Filename) bb/copy-to-EBX Filename/imm32 b9/copy-to-ECX 0x180/imm32/fixed-perms diff --git a/subx/examples/ex8 b/subx/examples/ex8 index fcbf4fcf..5be0e1e6 100755 Binary files a/subx/examples/ex8 and b/subx/examples/ex8 differ diff --git a/subx/examples/ex8.subx b/subx/examples/ex8.subx index 85fe1568..9d7255e1 100644 --- a/subx/examples/ex8.subx +++ b/subx/examples/ex8.subx @@ -19,6 +19,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 +Entry: # . prolog 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # EAX = ascii-length(argv[1]) @@ -55,4 +56,6 @@ $ascii-length:end: # return EAX c3/return +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 diff --git a/subx/examples/ex9 b/subx/examples/ex9 index ffbea21b..fce7629c 100755 Binary files a/subx/examples/ex9 and b/subx/examples/ex9 differ diff --git a/subx/examples/ex9.subx b/subx/examples/ex9.subx index 344c62ae..e3318b05 100644 --- a/subx/examples/ex9.subx +++ b/subx/examples/ex9.subx @@ -22,6 +22,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 +Entry: # . prolog 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . . # copy ESP to EBP # ascii-difference(argv[1], argv[2]) @@ -49,4 +50,6 @@ ascii-difference: # (s1, s2) : null-terminated ascii strings 29/subtract 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . . # subtract ECX from EAX c3/return +== data 0x0a000000 + # . . vim:nowrap:textwidth=0 -- cgit 1.4.1-2-gfad0