Archive

Posts Tagged ‘programming’

Hello World! in Assembly, C, C++, Java, LISP, Pascal, VHDL

April 6, 2009 wonggoblog 1 comment

Wew, Hello World! in many programming languages.

Assembly

MIPS Assembly- RISC Processor

       .data
msg:     .asciiz "Hello, world!"
         .align 2
         .text
         .globl main
main:
         la $a0,msg
         li $v0,4
         syscall
         jr $ra

Intel x86,DOS, TASM

MODEL SMALL
IDEAL
STACK 100H

DATASEG
MSG DB 'Hello, World!', 13, '$'

CODESEG
Start:
MOV AX, @data
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 09H ; output ascii string
INT 21H
MOV AX, 4C00H
INT 21H
END Start

C

#include <stdio.h>
int main(void){
	printf("Hello, world!\n");
	return 0;
}

C++

#include <iostream>

int main(){
	std::cout << "Hello, World!\n";
}

Java

public class HelloWorld
   {
        public static void main(String[] args)
        {
             System.out.println("Hello, world!");
        }
   }

LISP

(format t "Hello World!~%")
(write-line "Hello World!")
 "Hello World!"

VHDL

use std.textio.all;

ENTITY hello IS
END ENTITY hello;

ARCHITECTURE Scriptol OF hello IS
 CONSTANT message : string := "hello world";
BEGIN
 PROCESS
 variable L: line;
 BEGIN
 write(L, message);
 writeline(output, L);
 wait;
 END PROCESS;
END ARCHITECTURE Scriptol;

source: http://www.mycplus.com/featured-articles/hello-world-programs-in-300-programming-languages/

Assembler: Membuat Insertion Sort+Minimum Sort

March 20, 2009 wonggoblog Leave a comment

Ini bakal panjang dan membosankan, sumpah. Jika tidak tertarik atau berkepentingan saya harap tidak memaksakan diri membacanya.

Program ini mempunyai kemampuan mengurutkan masukan baik berupa integer, real maupun karakter. Proses pengurutan dapat dilakukan dengan insertion sort maupun minimum sort.

#########################################################################
# author    :     Kuncoro Dwi Atmojo     nama program:             >>> SuperSorter <<<                                                   #
##########################################################################
#>>>>>>>>>>>>>>>>               main program                    <<<<<<<<<<<<<<<<<<<<<<<<#
#>>>>                  program meminta masukan N bilangan/karakter                 <<<<<#
#>>>>>>>>             program mengurutkan bilangan/karakter                      <<<<<<<#
#>>>>>>>>>>             tersebut dengan insertion sort/minimum sort         <<<<<<<<<<<<#

############# penggunaan register #######################################################
#$s1    :nilai N, jumlah input                                                            #
#$s0    :counter untuk pengisian N bilangan/karakter                                    #
#$s2    :pilihan integer, pecahan atau karakter                                            #
#$s3    :counter untuk menampilkan isi array yang terurut                                #
#$t1    :index untuk menggeser nilai yang lebih besar dari masukan baru                    #
#$t3    :index dari masukan baru, selalu bertambah setiap ada masukan                    #
#$t4    :nilai masukan pengguna                                                            #
#$t5    :index dari nilai yang dibandingkan dengan masukkan baru                        #
#$t6    :nilai dalam array yang akan dibandingkan, nilai dari array dengan indeks $t5    #
#$t7    :index array yang akan ditampilkan                                                #
#$t8    :temp karakter yang akan diprint                                                #
#$f2    :masukan baru berupa pecahan                                                    #
#$f4    :pecahan yang akan dibandingkan dengan masukan baru                                #
###############     kamus     ###########################################################
.data
arrint: .word 0:300
arrfloat: .space 2048
arrchar: .space 1024
##############   algoritma   #################
.text
.globl main
main:                                            # main program
jal inisial                                    # menanyakan jenis masukkan, metode sorting yang dipakai, jumlah N
beq $t0,98, main_minsort                    # jika memilih metode minimum sort (b), selanjutnya ke main_minsort

main_insort:                                # main untuk insertion sort
li $s0, 1
li $t3, 0                                # index masukan, jika char maka t3 +1, int maka t3+4, double maka t3+8
muter:
jal input                        # minta masukan
jal insort                        # langsung mengurutkan setiap masukan
addi $s0,1
ble $s0, $s1, muter                # terus minta masukan hingga s0 sama dengan N
jal tampilkan                            # menampilkan hasilnya ke layar
j keluar                                # keluar program

main_minsort:                                 # main untuk minimum sort
li $s0, 1
li $t3, 0                                # index masukan, jika char maka t3 +1, int maka t3+4, double maka t3+8
jal input_minsort                    # meminta masukan, memasukkan ke dalam array tanpa mengurutkannya
addi $s0,1
ble $s0, $s1, input_minsort            # terus minta masukan hingga s0 sama dengan N
jal minsort                            # mengurutkan isi array dengan metode minimum sort
jal tampilkan                            # menampilkan hasil urutan ke layar
j keluar                                # keluar dari program
#>>>>>> end of main program <<<<<<#

#>>>>>> inisial <<<<<<<<<#
.data
str0: .asciiz “   ~~~ program mengurutkan N masukan ~~~\n   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n”
str1: .asciiz “\n N:”
str7: .asciiz “anda ingin memasukkan integer, pecahan atau karakter(i/p/k)? “
str8: .asciiz “\n pilih metode pengurutan:\n a. insertion sort\n b. minimum sort\n”
str9: .asciiz “(a/b)?”
pilihan: .space 8
.text
inisial:
la $a0, str0                        # menampilkan tulisan
li $v0, 4                            # ‘~~~ program mengurutkan…’
syscall

pilihinput:                            # >>>> memilih jenis input <<<<
la $a0, str7                    # menampilkan tulisan
li $v0,4                        # ‘anda ingin memasukkan integer…’
syscall

li $v0,8                        # meminta masukan
la $a0,pilihan                    # menyimpannya di ‘pilihan’
li $a1, 8
syscall

lb $t2,($a0)                    # meload pilihan ke $t2

beq $t2,105, pilihmetode        # jika masukan sudah benar, pilih metode
beq $t2,112, pilihmetode        # masukan yang benar ‘i’, ‘p’, atau ‘k’
beq $t2,107, pilihmetode

b pilihinput                    # jika masukan salah, minta masukan lagi

pilihmetode:                        # >>> memilih metode sorting yang digunakan <<<
la $a0, str8                    # menamppilkan tulisan
li $v0,4                        # ‘pilih metode…’
syscall

masukanpilihan:
la $a0, str9                # menampilkan tulisan ‘(a/b)?’
li $v0,4
syscall

li $v0,8                    # meminta masukan
la $a0,pilihan                # menyimpannya di ‘pilihan’
li $a1, 8
syscall

lb $t0,($a0)                    # meload masukan jenis metode ke $t0

beq $t0,97, masukkanN            # jika pilihan benar (a/b)
beq $t0,98, masukkanN            # branch ke masukkanN

b masukanpilihan                # jika salah minta masukan lagi

masukkanN:                                # >>> meminta masukan N jumlah input <<<
la $a0, str1                        # menampilkan tulisan
li $v0, 4                            # ‘N: ‘
syscall

li $v0,5                            # meminta masukan, menyimpan di $v0
syscall
move $s1,$v0                        # memindah masukan ke $s1

blez $s1, keluar                    # jika N kurang dari 1, keluar

jr $ra                                # kembali ke register $ra (setelah jal inisial)
#>>>>>>>> end of inisial <<<<<<<<<<<<#

#>>>>>>>> input <<<<<<<<<<<<<<<<<<<#
.data
str3: .asciiz “<> masukan ke-”
str4: .asciiz “: “

.text
input:                                    # >>> meminta input bilangan/karakter yang ingin diurutkan <<<
la $a0, str3                        # menampilkan tulisan ‘masukan ke-’
li $v0, 4
syscall

move $a0, $s0                        # menampilkan counter masukan
li $v0, 1
syscall

la $a0, str4                        # menampilkan ‘: ‘
li $v0, 4
syscall

beq $t2,105, input.ins.int            # branch sesuai pilihan jenis input
beq $t2,112, input.ins.float        # i (105), p(112), atau k(107)
beq $t2,107, input.ins.char

input.ins.int:
li $v0,5                        # meminta masukan integer, menyimpan di $v0
syscall
jr $ra                            # kembali ke langkah setelah input

input.ins.float:
li $v0,7                        # meminta masukan pecahan (double), menyimpak di $f0
syscall
jr $ra                            # kembali ke langkah setelah input

input.ins.char:
li $v0,8                        # meminta masukan karakter
la $a0, arrchar($t3)            # menyimpan di arrchar($t3)
li $a1,1024
syscall
jr $ra                            # kembali ke langkah setelah input
#>>>>>> end of input <<<<<<<<<<#
Read more…

Starting Java Programming

February 26, 2009 wonggoblog Leave a comment

Java is an object oriented programming language.  It’s developed by James Gosling at Sun Microsystem in 1995. Java is a language derived from C++, so its instruction is similar to C++. Java sourcecode is compiled to bytecode (.class file). This bytecode can run in any computer architecture, as it’s slogan, “write once run anywhere” .

What to do?

1. Install JDK (Java Development Kit)

Download JDK at http://java.sun.com/javase/downloads/index.jsp. After downloading, install it by double clicking its installer. After it is installed, copy its bin address to Environtment of your computer. Right click My Computer -> Properties -> Advanced -> Environtment variable, look for the variable path , edit it, add the directories of your java.exe file (in bin folder) to it.

Now you can write javac and java to your command prompt  windows.

2. Start Programming

Open your text editor, I usually used notepad++, because it support many languages. If you use notepad++, change the language into Java. Try to write down this things..

public class HelloWorld{
                  public static void main(String[] args){
                                System.out.println(“Hello world….”);
                  }
}

Save this as HelloWorld.java

3. Compile it

Open command prompt. Change the directory to the directory you save HelloWorld.java.

>javac   HelloWorld.java

If you want to compile from other directory

>javac   (directory)/HelloWorld.java

After compiling, a .class file will be made. This .class file can run in any platform with JVM (Java Virtual Machine). JVM automatically installed when you install JDK.

4. Run your program

Write in your command prompt

>java   HelloWorld

Write the file name without the extension.. Then… you’ll see your text..

OK, that’s enough for today….

Categories: programming Tags: , ,