Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

fizzbuzz

Name: übermench 2011-12-26 15:04

just wanted to post my awesome fizzbuzz implementation
#include <stdio.h>
#include <stdlib.h>

void main(int j) {
  printf(((char*[]){"%d\n","fizz\n","buzz\n","fizzbuzz\n"})[!(j%3)+!(j%5)*2], j);
  (&main + (&exit - &main)*(j/100))((j+1)*(1-j/100) );
}

Name: Anonymous 2011-12-27 3:47

section .data
fizz:   db      "Fizz", 0
buzz:   db      "Buzz", 0
fmt:    db      "%d", 0
three:  db      3
five:   db      5

section .text
        global  _start
        extern  putchar
        extern  printf
        extern  exit
_start:
        mov     ecx, 1
.loop:
        mov     [esp+4], ecx
        cmp     ecx, 100
        jg      .fin

        mov     ax, cx
        div     byte [three]
        test    ah, ah
        jz      .fizz

        mov     ax, cx
        div     byte [five]
        test    ah, ah
        jz      .buzz

        mov     [esp-4], ecx
        mov     dword [esp], fmt
        call    printf
.end:
        mov     byte [esp], 0xa
        call    putchar

        mov     ecx, [esp+4]
        inc     ecx
        jmp     .loop
.fin:
        mov     byte [esp], 0
        call    exit
.fizz:
        mov     dword [esp], fizz
        call    printf

        mov     ax, [esp+4]
        div     byte [five]
        test    ah, ah
        jz      .buzz

        jmp     .end
.buzz:
        mov     dword [esp], buzz
        call    printf

        jmp     .end

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List