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
- Desain Algoritma:
- 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]
- Hanya dapat membuat program dgn extension *.COM => karena karakteristik sifat program ini :
- Debugger (Menggunakan DEBUG)
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”
- Menyimpan Program
-
-
-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”
- MeLoad Program
-
-
-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
- Dalam membuat program menggunakan Turbo Assembler diperlukan software sbb:
- Mengunakan Turbo Assembler (TASM, Borland)
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 | .MODEL SMALL |
- 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
binguuuuuuuuuunggg :/
BalasHapussamaaaaaaaaaaaaa
BalasHapusup up up kejedod ikutan binguuuuung
BalasHapussangat bingung tpi bermanfaat thanks ya gan folow back
BalasHapushttp://studia-lets-go-green-blogspot.com
terimaksih,smga bermamfaat untuk sya....
BalasHapuswlpun baca nya cepet....
keren banget kak infonya
BalasHapuscara membuat tteokbokki instan