From 141084631a1fe756928bca2adb4b79e77cef9875 Mon Sep 17 00:00:00 2001 From: j8takagi <info@j8takagi.net> Date: Fri, 2 Nov 2012 19:47:54 +0900 Subject: [PATCH] =?utf8?q?=E6=97=A2=E5=AD=98=E3=83=97=E3=83=AD=E3=82=B0?= =?utf8?q?=E3=83=A9=E3=83=A0=E3=81=AE=E6=8E=A8=E6=95=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- c/Makefile | 13 +++++++++---- c/fizzbuzz | Bin 8434 -> 0 bytes c/fizzbuzz.c | 7 +++++-- casl/fizzbuzz.casl | 42 ++++++++++++++++++------------------------ ruby/fizzbuzz.rb | 2 +- 5 files changed, 33 insertions(+), 31 deletions(-) delete mode 100755 c/fizzbuzz diff --git a/c/Makefile b/c/Makefile index 0bcad0e..fb2ddc9 100644 --- a/c/Makefile +++ b/c/Makefile @@ -7,10 +7,15 @@ CASL2SRC := struct.c hash.c ASSRC := assemble.c token.c label.c EXECSRC := exec.c dump.c -.PHONY: clean +.PHONY: all clean -fizzubzz: fizzbuzz.c - $(CC) $(CFLAGS) -o fizzbuzz $^ +all: fizzbuzz fizzbuzz2 + +fizzbuzz: fizzbuzz.c + $(CC) $(CFLAGS) -o $@ $^ + +fizzbuzz2: fizzbuzz2.c + $(CC) $(CFLAGS) -o $@ $^ clean: - @$(RMF) fizzbuzz + @$(RMF) fizzbuzz fizzbuzz2 diff --git a/c/fizzbuzz b/c/fizzbuzz deleted file mode 100755 index 3f12845b445a11e07d27783a560e3862ca0e645f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8434 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 diff --git a/c/fizzbuzz.c b/c/fizzbuzz.c index 87d7802..43e73ed 100644 --- a/c/fizzbuzz.c +++ b/c/fizzbuzz.c @@ -1,4 +1,8 @@ #include <stdio.h> +enum { + MIN = 1, + MAX = 100, +}; void puts_fizzbuzz(int n) { @@ -19,10 +23,9 @@ void puts_fizzbuzz(int n) int main() { - const int max = 100, min = 1; int i; - for(i = min; i <= max; i++) { + for(i = MIN; i <= MAX; i++) { puts_fizzbuzz(i); } return 0; diff --git a/casl/fizzbuzz.casl b/casl/fizzbuzz.casl index fff05f0..3866614 100644 --- a/casl/fizzbuzz.casl +++ b/casl/fizzbuzz.casl @@ -2,9 +2,9 @@ MAIN START RPUSH LD GR1,MIN ; GR1ã«MINãä»£å ¥ LOOP CALL FIZBUZ ; FIZBUZãå¼ã³åºã - LAD GR1,1,GR1 ; GR1 <- GR1 + 1 CPL GR1,MAX ; GR1ã¨MAXãæ¯è¼ - JPL FIN ; GR1 > MAX ã®å ´åãFINã¸ã¸ã£ã³ã + JZE FIN ; GR1 = MAX ã®å ´åãFINã¸ã¸ã£ã³ã + LAD GR1,1,GR1 ; GR1 <- GR1 + 1 JUMP LOOP ; LOOPã¸ã¸ã£ã³ã FIN RPOP RET @@ -21,30 +21,24 @@ FIZBUZ START XOR GR4,GR4 ; GR4: æååãFizzãã®é·ãããã³ãã©ã° XOR GR5,GR5 ; GR5: æååãBuzzãã®é·ãããã³ãã©ã° XOR GR6,GR6 ; GR6: æååãFizzBuzzãã®ãã©ã° -GETFIZ LD GR2,FIZNUM ; GR2ã«FIZNUM=3ãä»£å ¥ + LD GR2,FIZNUM ; GR2ã«FIZNUM=3ãä»£å ¥ CALL DIVL ; GR3 <- GR1 % 3(= GR2) - LD GR3,GR3 ; GR3ã®ãã©ã°å¤ãåå¾ - JNZ GETBUZ ; GR3ã0ã§ãªãå ´åãFIZNUMã®åæ°ã§ã¯ãªãã®ã§ãGETBUZã¸ã¸ã£ã³ã - LD GR4,FIZLEN ; GR4ã«æååãFizzãã®é·ãFIZLEN=4ãä»£å ¥ -GETBUZ LD GR2,BUZNUM ; GR2ã«BUZNUM=5ãä»£å ¥ + LD GR4,GR3 ; GR4 <- GR3 + LD GR2,BUZNUM ; GR2ã«BUZNUM=5ãä»£å ¥ CALL DIVL ; GR3 <- GR1 % 5(= GR2) - LD GR3,GR3 ; GR3ã®ãã©ã°å¤ãåå¾ - JNZ PUTS ; GR3ã0ã§ãªãå ´åãBIZNUMã®åæ°ã§ã¯ãªãã®ã§ãPUTSã¸ã¸ã£ã³ã - LD GR5,BUZLEN ; GR4ã®ãã©ã°å¤ãåå¾ -PUTS LD GR6,GR4 ; GR6 <- GR4 - AND GR6,GR5 ; GR6 <- GR6 and GR4 - JZE CHKFIZ ; GR6ã0ã®å ´åãGR4ãGR5ã®ã©ã¡ããã0ãªã®ã§ãCHKFIZã¸ã¸ã£ã³ã - ADDL GR4,GR5 ; GR4 <- GR4 + GR5 - JUMP PUTFIZ ; ãFizzBuzzããåºåãããããPUTFIZã¸ã¸ã£ã³ã -CHKFIZ LD GR4,GR4 ; GR4ã®ãã©ã°å¤ãåå¾ - JZE CHKBUZ ; GR4ã0ã®å ´åãCHKBUZã¸ã¸ã£ã³ã -PUTFIZ ST GR4,LEN ; LEN <- GR4 - OUT FIZZ,LEN ;ãFizzãã¾ãã¯ãFizzBuzzããåºå + LD GR5,GR3 ; GR5 <- GR3 + LD GR6,GR4 ; GR6 <- GR4 or GR5 + OR GR6,GR5 ; â + JNZ PUTFIZ ; GR6ã0以å¤ã®å ´åãGR4ãGR5ã®ã©ã¡ããã0以å¤ãªã®ã§ãPUTFIZã¸ã¸ã£ã³ã + OUT FIZZ,FBLEN ; ãFizzBuzzããåºå + JUMP FIN ; ãFizzBuzzããåºåãããããPUTFIZã¸ã¸ã£ã³ã +PUTFIZ LD GR4,GR4 ; GR4ã®ãã©ã°å¤ãåå¾ + JNZ PUTBUZ ; GR4ã0以å¤ã®å ´åãPUTBUZã¸ã¸ã£ã³ã + OUT FIZZ,FIZLEN ;ãFizzããåºå JUMP FIN ; FINã¸ã¸ã£ã³ã -CHKBUZ LD GR5,GR5 ; GR5ã®ãã©ã°å¤ãåå¾ - JZE PUTNUM ; GR5ã0ã®å ´åãPUTNUMã¸ã¸ã£ã³ã -PUTBUZ ST GR5,LEN ; LEN <- GR4 - OUT BUZZ,LEN ;ãBuzzããåºå +PUTBUZ LD GR5,GR5 ; GR5ã0以å¤ã®å ´åãPUTNUMã¸ã¸ã£ã³ã + JNZ PUTNUM ; â + OUT BUZZ,BUZLEN ;ãBuzzããåºå JUMP FIN ; FINã¸ã¸ã£ã³ã PUTNUM CALL OUTL ; GR1ã®æ°å¤ã表示 FIN RPOP @@ -55,4 +49,4 @@ FIZZ DC 'Fizz' BUZZ DC 'Buzz' FIZLEN DC 4 BUZLEN DC 4 -LEN DS 1 +FBLEN DC 8 diff --git a/ruby/fizzbuzz.rb b/ruby/fizzbuzz.rb index 55b7316..6746370 100755 --- a/ruby/fizzbuzz.rb +++ b/ruby/fizzbuzz.rb @@ -15,7 +15,7 @@ def puts_fizzbuzz(n) end min = 1 -max = 100 +max = 65535 for i in min..max puts_fizzbuzz(i) -- 2.18.0