Poochiewuddledumpling-Boobledarling is a programming language loosely based on assembly. It was created by two Finnish coders. The first usable beta version came out in July 2009.
soonwho knows when!
add sub mul div rnd
push pop empty inv copy dump
jmp cmp je jne jg jge jng jnge jl jle jnl jnle
sys loc col end
jmp Main ;Adds 1 to the EAX register Plus: add EAX $1 ret ;Main program Main: call Plus call Plus call Plus ;The ASCII character of 0 is 48 add EAX $48 out 0 EAX ;Print the number out 0 $13 ;Carriage return out 0 $10 ;Newline end
99 Bottles of beer
mov EBX $99 jmp Main Print: inv ;Invert the stack Print_Loop: pop EAX ;Take one character from the stack ;Replace _ with space cmp EAX $95 jne Cont mov EAX $32 Cont: out 0 EAX ;Print the character empty EAX ;Check is the stack empty cmp EAX $0 je Print_Loop ;New line out 0 $13 out 0 $10 ret Number: mov ECX EBX cmp ECX $0 jne NotZero dump "no_more" jmp EndNumber NotZero: cmp ECX $10 ;Is less that 10 jl One ;Printed number is greater that 9 mov EDX ECX div EDX $10 mov EAX EDX add EDX $48 push EDX mul EAX $10 sub ECX EAX add ECX $48 push ECX jmp EndNumber ;Printed number is less that 10 One: add ECX $48 push ECX EndNumber: ret Throw_Bottle: call Number dump "_bottles_of_beer_on_the_wall,_" call Number dump "_bottles_of_beer." call Print sub EBX $1 dump "Take_one_down_and_pass_it_around,_" call Number dump "_bottles_of_beer_on_the_wall." call Print ;New line out 0 $13 out 0 $10 ret Main: call Throw_Bottle cmp EBX $0 jne Main dump "No_more_bottles_of_beer_on_the_wall,_no_more_bottles_of_beer." call Print dump "Go_to_the_store_and_buy_some_more,_99_bottles_of_beer_on_the_wall." call Print out 0 $13 out 0 $10 end