All of them.. Lol k not all languages but quite a lot..
Meh:Every kind of assembly language (ASM x86, Mips-ASM, ASM-ARM (for iPhone cracking stuff)).. and their assemblers (IE: MASM, FASM, NASM, MIPSA, etc)
Every C language (C#, Obj-C, C, C++, VC++) including the C++11, C-99 and C++-1y/14 apis..
Java/Byte-code
F#
Pascal/Delphi
Haskel
Fortran
GLSL (and all other OpenGL shading languages)
Aren't really languages or just really easy and everyone else knows them too:Lua (perhaps my fave scripting language)
Visual Basic (yes I don't consider this piece of crap a language)
PHP, HTML, JS, ASP/ASP.Net (I hate each and every one of these except PHP)
A lot of Server Query Language (P-SQL, PL/SQL (Oracle), T-SQL, Postgre-SQL(Oracle based))
Languages I want to know but I just find weird or boring/useless to learn:Google Go! (Not sure why I should learn this since the other languages I know can do the same things..)
Python (Heard it is like C so.. not sure why either)
MatLab
Ruby
Pearl
Cobol (just so I can say I know something old :l..)
For the hello worlds.. Iunno what to write.. Pretty sure everyone saw my Java, C, C++ code.. So I'll just post the hardest one which I wrote a while back here:
http://villavu.com/forum/showthread.php?t=95541All the following does is get user input and store it in registers, push the stack, store another, and then print it.. Has a couple functions too which just prints the parameter passed..
ASM x86:
format PE console ;Format PE OUT GUI 4.0
entry main
include 'macro/import32.inc'
section '.idata' import data readable ;Import Section.
library msvcrt,'msvcrt.dll'
import msvcrt, printf, 'printf',\
exit,'exit', getchar, 'getchar', scanf, 'scanf'
section '.data' data readable writeable ;Constants/Static Section. This section can store variables.
Size dd 0 ;Array Size. A Dword Initialized to 0
PromptValue db "Enter A Number: ", 13, 10, 0 ;Prompt User For A Number.
FuncPrint db 13, 10, 13, 10, "Calling Function: %s", 13, 10, 0 ;Statement For Function.
Response db 13, 10, 13, 10, "You Entered: %d", 13, 10, 0 ;Statement For Number.
InputFormat db "%d", 0 ;Format Data
IntArray dd 0 ;Declare Dword Initialized to 0
Index dd 0
section '.code' code readable executable
main:
push ebp
mov ebp,esp
push PromptValue ;Ask the user to Enter a number.
call [printf]
add esp, 4
push Size
push InputFormat
call [scanf] ;Call scanf with the "%d" and the variable to hold the integer.
add esp, 8
push [Size]
push Response
call [printf] ;Print the value the user entered with "%d".
add esp, 8
mov ecx, [Size] ;Store the Array Size/Number in the count register.
mov [Index], 0 ;Set the Index variable to 0.
ASSIGN: ;The beginning of a loop.
push ecx ;Backup our count because printf discards it.
mov ecx, [Index] ;Move our index to the new count register.
inc [Index] ;Increment the index.
mov [IntArray + 4 * ecx], ecx ;Change the value at the array's index to the current count.
pop ecx ;Restore our old count.
loop ASSIGN ;Loop if Count is > 0.. else break.
;TODO: Add Loop to print array..
mov [Index], 65 ;Store the character A in variable called Index.
push Index ;Pass Index to the function as a parameter by pushing it onto the stack.
call Function ;Call the function.
add esp, 4 ;Restore the stack pointer..
mov esp, ebp
pop ebx
call [getchar] ;Wait until the user presses a key before we exit.
call [getchar]
mov eax, 0 ;Return 0.
ret
Function:
push ebp
mov ebp, esp
mov eax, [ebp + 8] ;Function Parameter
push eax
push FuncPrint
call [printf] ;Print the Parameter Passed..
add esp, 8
mov esp, ebp
pop ebp
ret
Mips ASM:
.data #Data Section.
Input: .word 0
Prompt: .asciiz "\nEnter An Array Length:\n"
Prompt_Two: .asciiz "\nEnter Another Number:\n"
Notice: .asciiz " Is >= 80 AND < 100"
Space: .asciiz " "
NewLine: .asciiz "\n"
.text
main:
li $v0, 4 #4 means to print string.
la $a0, Prompt #Pass the value to print on screen.
syscall #Perform the system call for printing string.
li $v0, 5 #5 means to read input. This reads the length from the user.
syscall #Get the user input via the system call to read string.
move $s3, $v0 #Store the length of the array.. Similar to ECX register in x86.
GetNumbers: #Beginning of the loop.
subi $s3, $s3, 1 #Decrease the count.. This determines whether we break out of the loop or not.
beqz $s3, EndNumbers #if our count = 0, break out of the loop.
li $v0, 4 #Ask the user to enter another number.
la $a0, Prompt_Two
syscall
li $v0, 5 #wait for user input.
syscall
move $a0, $v0 #store their number in the $a0 register. Similar to eax
blt $v0, 80, GetNumbers #if the number is less than 80, don't bother printing it.
bge $v0, 100, GetNumbers #or.. if it is greater than 100, don't print it either..
li $v0, 1 #print integer.. this will print the number..
syscall
li $v0, 4 #print string.. this will print the Notice.. thus, it prints: SOmeNumber: Is >= 80 && < 100.
la $a0, Notice
syscall
b GetNumbers #continue the loop.. The loop only breaks when count reaches 0.
EndNumbers:
li $v0, 10 #Exit the program.
syscall #Invoke exiting via System call.
P.S. I still hate programming.. Just do it to kill time :l