Senin, 29 Maret 2010

Bahasa Rakitan, 30 maret 2010

Proses Pembuatan Program

  • Dalam proses pembuatan program bahasa rakitan terdapat 5 langkah yang harus diketahui:
    • Desain Algoritma:
      • Penetapan masalah
      • Pengusulan solusi yang terbaik
      • Pembuatan diagram skematik yang digunakan agar usulan solusi lebih baik (berupa flowchart)
    • Pengkodean algoritma
      • Penulisan program dalam bahasa pemrograman tertentu
    • Penerjemaahan ke bahasa mesin
      • Pembuatan program obyek, atau dgn kata lain,program ditulis dalam suatu deret/urutan 0 dan 1 yang dapat diinterpretasi oleh prosessor
    • Test program
      • Eksekusi program pada mesin komputer
    • Mengeliminasi kesalahan yang terdeteksi
      • Koreksi kesalahan umumnya memerlukan pengulangan seluruh langkah-2 dari langkah 1 atau 2
  • Untuk membuat program dlm bahasa rakitan tersedia dua option:
    • Debugger (Menggunakan DEBUG)
      • Hanya dapat membuat program dgn extension *.COM => karena karakteristik sifat program ini :
        • Program tidak lebih besar 64 K dan
        • Program harus dimulai dgn displacment, offset, atau 0100H memory direction didalam segment tertentu(spesific)
      • Kumpulan perintah DEBUG antara lain:
        • A: Assemble => merakit intruksi simbolik =>kode mesin
        • D: Dump =>menampilkan isi suatu daerah memori
        • E: Enter =>memasukan data ke memori, dimulai pada lokasi tertentu
        • G: Go =>run executable program ke memori
        • N: Name =>menamai program
        • P: Proceed =>ekskusi sekumpulan instruksi yang terkait
        • Q: quit
        • R: Register =>menampilkan isi satu atau lebih registers
        • T: Trace =>menjalankan program sambil menampilkan register yang dipakai
        • U: Unassembled =>Tampilkan program yang sudah ada
        • W: Write => menulis program ke disk
      • Bagaimana memulai DEBUG?
        • C:/>debug[enter]
        • -r[enter]

Muncul tampilan sbb
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC 0D62:0100 2E CS:0D62:0101 803ED3DF00 CMP BYTE PTR [DFD3],00CS:DFD3=03

Kalo mau menampilkan mengunakan parameter sbb:

-rbx [enter]
Muncul tampilan sbb:
BX 0000
:
(apabila muncul tanda “:” kita bisa mengisi nilai dari BX)

Bagaimana membuat program bahasa rakitan dasar dengan debug:

        • Memulai Debug dengan mengetik sbb

C:/>Debug[enter]

        • Assemble suatu program dgn perintah “a” dengan format sbb:

a parameter[enter]
- A 100[enter]
Ket:
Parameter => alamat awal proses perakitan
Jika tanpa parameter => diinisialisasi pada posisi (locality) yang dispesifikasikan
oleh CS:IP(biasanya100h)

        • Contoh program lengkap sbb:

- a 100[enter]
0B42:0100 mov ax,0002[enter] ; move nilai 0002 ke AX
0B42:0100 mov bx,0004[enter] ; move nilai 0004 ke BX
0B42:0100 add ax,bx[enter] ; tambahkan nilai bx ke ax
0B42:0100 nop[enter][enter] ; tidak ada program=>finish the program

        • Untuk mengetahui hasil perogram ketik “t”sbb:

- t [enter]
Muncul tampilan sbb:
AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0103 NV EI PL NZ NA PO NC 0D62:0103 BB0400 MOV BX,0004

        • Menyimpan Program
          • Cek panjang prorgram dgn perintah “h”

-h 10a 100 (alamat akhir 10a)
020a 000a

          • Memberi nama

-n test.com

          • Gunakan perintah “rcx” untuk mengubah nilai registes CX dgn nilai yg diperoleh dari ukuran file => 000a

-rcx
CX 0000
:000a

          • Terakhir, gunakan perintah “w” u/ menyimpan

– w
Writing 000A bytes

        • MeLoad Program
          • Berikan nama file yang akan diload
          • Load dgn perintah “l”

-n test.com
-l
-u 100 109

0C3D:0100 B80200 MOV AX,0002
0C3D:0103 BB0400 MOV BX,0004
0C3D:0106 01D8 ADD AX,BX
0C3D:0108 CD20 INT 20

Ket:
=>Perintah “u” digunakan memverifikasikan bhw program telah diloaded ke memori. Ini berarti dgn perintah ini: kode di unassemble, kemudian meanmpilakn hasil unassemble. Parameter mengindikasi Debug dari mana dan disassamble ke mana.
=> Debug selalu meload program ke memori pada alamat 100h, kecuali digunakan paramater lain.

    • Mengunakan Turbo Assembler (TASM, Borland)
      • Dalam membuat program menggunakan Turbo Assembler diperlukan software sbb:
        • Editor => menulis souurce code (Notepad, SK dll)
        • Compiler => menerjemahkan source code ke program objek (TASM)
        • Linker => Menggenerate program objek ke executable file.
      • Langkah-langkahnya
        • Simpan file dengan ekstensi .asm
        • Compile => c:\>TASM coba.asm
        • Link => c:\>TLINK coba

Pola Susunan Pemrograman

  • Program Bahasa Rakitan dapat berekstensi .COM maupun .EXE
  • Perbedaan antara .COM dan .EXE adalah sbb:

Perbedaan

Program .EXE

Program .COM

Kecepatan

Lebih lambat dari file .COM karena program lebih panjang

Lebih cepat dari .EXE karena program lebih pendek

Ukuran

Tidak terbatas sesuai dengan ukuran memory

Maksimal 64KB

Segmen

Mengenal adanya segmentasi, sehingga terdapat Code Segment, Data Segment dan Stack Segment

Hanya memiliki satu segment yaitu Code Segment yang ditempati oleh program data dan stack

Akses data pada segmen lain

Mudah mengakses data atau procedure pada segment lain

Sulit mengakses data atau procedure pada segmen lain

Debug mode

Tidak dapat dibuat dengan DEBUG

Dapat dibuat dengan DEBUG

Awal Program

Diawali dengan Stack Segment atau Data Segment kemudian diikuti dengan Code Segment

100H byte pertama merupakan PSP(Program Segment Prefix)dari program tersebut, sehingga instruksi assembler biasanya dimulai pada CS:0100

Akhir Program

Diakhiri dengan Instruksi Assembler fungsi 4CH Interrupt 21H

Diakhiri dengan Interrupt 20H

  • Perbedaan pola susunan bahasa rakitan antara .EXE dengan .COM dalah sbb:

Program .EXE

Program .COM

Sseg SEGMENT
............... (Stack Segment)
Sseg ENDS
Dseg SEGMENT
................(Data Segment)
Dseg ENDS
Cseg SEGMENT
ASSUME CS:Cseg,DS:Dseg,SS:Sseg
..................(Code Segment)
MOV 1H,4CH
INT 21H
Cseg ENDS
END

.MODEL SMALL
.CODE
ORG 100H
Data: JMP Proses
...............
...............(Tempat data Program)
Proses: ..............
..............
INT 20H
END Data

  • Pada program .COM digunakan perintah yang merupakan sebuah tanda langsung atau Directive Sign yang digunakan untuk memberi informasi kepada Assembler tentang bentuk memory yang akan digunakan pada program misalnya .MODEL SMALL
  • Ada enam model program yang bisa digunakan yaitu:
    • .MODEL TINY => Program dengan model ini hanya menggunakan 1 segment (Model ini disediakankhusus untuk program berekstensi .COM)
    • .MODEL SMALL =>Program model ini menggunkan ukuran data-data dan kode kurang dari 1 segment atau 64KB
    • .MODEL MEDIUM => Program model ini menggunakan ukuran data kurang dari 64KB namun ukuran kode bisa lebih dari 64KB
    • .MODEL COMPACT => Program model ini menggunkan ukuran data lebih kecil dari 64KB namum ukuran kode lebih kecil atau sama dengan 64KB
    • .MODEL LARGE => Program model ini menggunkan ukuran data dan kode lebih dari 64 KB (lebih dari 1 segment)
    • .MODEL HUGE => Program model ini menggunkan ukuran data, kode dan array lebih besar dari 64KB

Jenis Angka dan Penulisan Karakter

  • Dalam bahasa rakitan diijinkanpenggunaan beberapa bentuk angka yaitu
    • Desimal => 0, ...,9 (bisa ditulis langsung atau diberi tanda ‘D’ contoh: 777 atau 777D)
    • Biner => 0, 1 (harus diberi tanda ‘B’ contoh: 1011B)
    • Heksadesimal =>0,.....F (bila 0...9 harus ditambah ‘H’ dan bila angka pertama A, ....,F harus ditambah 0 didepannya. Contoh: 123BH, 0A12F)
  • Penulisan karakter atau string di dalam bahasa rakitan biasanya diapit oleh tanda petik(‘) atau tanda kutip (“) Misalnya “Bahasa rakitan” atau ‘STMIK Pradnya Paramita’


Menentukan Variabel atau Konstanta

  • Dalam bahasa rakitan sebuah variabel atau konstanta harus didefinisikan terlebih dahulu.
  • Ada beberapa instruksi untu mendefinisikan variabel atau konstanta yaitu:
    • DD (Define Byte) => untuk ukuran 1 Byte
    • DW (Define Word) => untuk ukuran 1 Word atau 2 Byte
    • DD (Define Double Word) => untuk ukuran 2 Word atau 4 Byte
    • DF (Define Far Word) => untuk ukuran 4 Word atau 8 Byte
    • DQ (Define Ten Byte) => untuk ukuran 5 Word atau 10 Byte
    • EQU (Equate) => Untuk menyamakan nilai suatu konstanta dengan nilai tertentu
  • Yang perlu di ingat dalam menuliskan konstanta atau variabel adalah penulisan variabel atau konstanta tidak boleh ada spasi tetapi cara penulisan bebas
  • Contoh penulisan variabel dan konstanta
    • Angka DW ? ;variabel inputan
    • Var DB ? ;variabel ukuran 1 byte, isi tidak diketahui
    • Kata1 DB ‘STMIK’ ;konstanta STMIK
    • Kons1 DB EQU 13H ;konstanta bernilai 13H
sumber : http://school.anhb.uwa.edu.au

6 komentar:

  1. binguuuuuuuuuunggg :/

    BalasHapus
  2. up up up kejedod ikutan binguuuuung

    BalasHapus
  3. sangat bingung tpi bermanfaat thanks ya gan folow back
    http://studia-lets-go-green-blogspot.com

    BalasHapus
  4. terimaksih,smga bermamfaat untuk sya....
    wlpun baca nya cepet....

    BalasHapus

BTemplates.com

Diberdayakan oleh Blogger.

Pages

Profil

Foto saya
Jakarta, jakarta selatan, Indonesia
Remaja. Tinggal di Jakarta. Sedang berusaha menemukan jawaban dari "Siapa saya?". Mencintai binar mata kanak-kanak, langit senja, aroma tanah basah, gelembung sabun, cokelat panas, tertawa keras-keras, dan berpelukan. Tergila-gila pada blog, humor, dan segala jenis buku. Teman yang menyenangkan dan menyebalkan, tergantung suasana hati. Baginya, menulis adalah terapi sekaligus sarana pencarian jati diri. Jadi, jangan tertipu oleh tulisan. Sapa dia jika bertemu di jalan, karena dia akan menyapa balik. Tapi jangan coba-coba menginjak kakinya di dalam angkot, atau menghembuskan asap rokok tepat di mukanya.

Followers

Total Tayangan Halaman

Popular Posts