Poochiewuddledumpling-Boobledarling
Jump to navigation
Jump to search
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.
Syntax
Descriptions coming soonwho knows when!
mov
add sub mul div rnd
push pop empty inv copy dump
jmp cmp je jne jg jge jng jnge jl jle jnl jnle
call ret
in out
alloc
sys loc col end
Sample programs
Using functions
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