Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711‐353414
PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK
Praktikum Bahasa Rakitan
Hand On Lab 4
Menggunakan Debug
150 menit (3 jam)
Lecturer : M. Miftakul Amin, S. Kom., M. Eng. Website : http://mafisamin.blog.ugm.ac.id Tujuan : 1. Mahasiswa dapat menjelaskan fungsi dari debug. 2. Mahasiswa dapat membuat program menggunakan debug Perlengkapan : Sistem Operasi DOS, TASM 2.0 1. Instruksi Debug Untuk program-program yang pendek dan sederhana sebaiknya menggunakan program debug. Semua program debug dibuat dalam sistem bilangan hexadecimal, sedangkan program hasil debug tersebut disimpan dengan ekstensi com. Untuk menjalankan program debug ini, cukup dilakukan dengan mengetikkan perintah debug kemudian diikuti dengan menekan tombol Enter pada keyboard. ¾ Debug [Menekan Tombol Enter] Tanda hyphen (-/garis sambung) yang terlihat sebagai respon dari perintah debug merupakan simbol prompt untuk perintah debug. Berikut beberapa instruksi dari Debug: 1) A – Assemble Format : A [Address] Address berisi alamat untuk memulai membuat program, nilai defaultnya adalah CS:0100. Perintah ini digunakan untuk memuat secara langsung program ke memori. Biasanya tombol Enter digunakan untuk meneruskan baris berikutnya dari program, jika sudah selesai membuat program tekan tombol Enter pada baris yang kosong untuk kembali ke prompt debug. Contoh : D:\TURBO_~1.0>debug -A100 137A:0100
2) C – Compare Format : C range address Berfungsi untuk membandingkan data pada alamat tertentu. Range merupakan daerah yang akan dibandingkan, sedangkan address merupakan awal alamat untuk mulai melakukan perbandingan dengan default nilainya adalah DS. 3) D – Dump Format : D [address] atau D [range] Berfungsi untuk melihat data yang ada dalam memori. Address merupakan alamat yang akan ditampilkan. Jika dituliskan D tanpa diikuti alamat maka defaultnya menjadi CS:100. Sedangkan jika diikuti alamat tertentu maka bernilai segment DS. Sedangkan range berisi daerah yang akan ditampilkan.
1 | H a l a m a n
Contoh: D:\TURBO_~1.0>debug -D 0 l50 137A:0000 CD 20 FF 137A:0010 DE 0D 17 137A:0020 FF FF FF 137A:0030 9E 12 14 137A:0040 05 00 00
9F 03 FF 00 00
00 DE FF 18 00
9A 0D FF 00 00
EE 0F FF 7A 00
FE-1D 04-01 FF-FF 13-FF 00-00
F0 01 FF FF 00
4F 01 FF FF 00
03 00 FF FF 00
DE 02 87 00 00
0D FF 0D 00 00
8A FF 4E 00 00
03 FF 01 00 00
. ........O..... ................ ..............N. ......z......... ................
4) E – Enter Format : E address [list] Berfungsi untuk memasukkan atau mengganti data ke dalam memori. Address merupakan lokasi dimana kita akan memasukkan data (dalam byte) defaultnya adalah DS. Sedangkan [list] merupakan daftar byte atau data yang akan dimasukkan. Contoh: D:\TURBO_~1.0>debug -E DS:10 'DATA PRO' 0
5) F – Fill Format : F range list Berfungsi untuk daerah tertentu dengan data yang ditentukan. Range merupakan daerah yang akan diisi data. Sedangkan list merupakan data yang akan dimasukkan. 6) G – Go Format : G [=address] [address[address…]] Berfungsi untuk menjalankan program yang ada dalam memori. Nilai [=address] jika didefinisikan maka program yang akan dijalankan dimulai dari CS:address. Sedangkan [address[address…]] berisi alamat penghentian jalannya program (minimal 10). 7) H – Hexadecimal Format : H value value Berfungsi untuk menjumlah dan mengurang dua bilangan hexadecimal. Contoh: D:\TURBO_~1.0>debug -H 4200 21A2 63A2 205E
8) I – Input Format : I portaddress Berfungsi membaca dan menampilkan data dari port. 9) L – Load Format :L address drive sector sector Berfungsi untuk memasukkan data dari sector ke memori. Address berisi alamat yang akan dipakai, defaultnya bernilai CS. 10) M – Move Format : M range address Berfungsi untuk melakukan copy data tertentu ke alamat tertentu. Range merupakan daerah yang akan dicopy. Sedangkan address merupakan alamat tujuan data. 11) N - Name Format : N [d:][path] nama file [ext] Berfungsi untuk mengubah atau mendefinisikan nama file. 12) O – Output Format : O portaddress byte Berfungsi untuk mengirim data ke alamat port tertentu.
2 | H a l a m a n
13) P – Proceed Format : P [=address][value] Berfungsi sama seperti trace, hanya menjalankan fungsi call, loop, interrupt, atau gabungan beberapa instruksi menjadi satu instruksi. [=address] merupakan awal pencarian kesalahan (trace) defaultnya bernilai CS:IP. Sedangkan [value] merupakan banyaknya instruksi yang akan dijalankan. 14) Q – Quit Format : Q Berfungsi untuk keluar dari debug tanpa melakukan perekaman. 15) R – Register Format : R [nama register] Berfungsi untuk menampilkan dan mengubah isi dari register. Contoh: D:\TURBO_~1.0>debug -R AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE DS=137A ES=137A SS=137A CS=137A IP=0100 137A:0100 0000 ADD [BX+SI],AL
BP=0000 SI=0000 DI=0000 NV UP EI PL NZ NA PO NC DS:0000=CD
16) S – Search Format : S range list Berfungsi mencari suatu data dalam memori. Range berisi data yang akan dicari. 17) T – Trace Format : T [=address][value] Berfungsi menjalankan program sembari menampilkan register yang dipakai. 18) U – Unassemle Format : u [address] atau U [range] Berfungsi untuk menampilkan program yang sudah ada. [=address] merupakan alamat awal program yang akan ditampilkan. Alamat defaultnya adalah setelah perintah U sebelumnya. Jika belum pernah menulis perintah U, maka defaultnya adalah CS:0100. [range] merupakan daerah yang akan dilihat, defaultnya adalah CS. 19) W – Write Format: W address Berfungsi untuk menulis program dan data ke dalam disket. Address berisi alamat awal yang akan ditulis ke dalam disket. 2. Menggunakan Program Debug Dengan menggunakan command DOS prompt ketikkan script program berikut: D:\TURBO_~1.0>DEBUG -A100 137A:0100 MOV CX, 1A 137A:0103 MOV DL, 41 137A:0105 MOV AH, 02 137A:0107 INT 21 137A:0109 INC DL 137A:010B LOOP 0105 137A:010D INT 20 137A:010F -g ABCDEFGHIJKLMNOPQRSTUVWXYZ Program terminated normally -
3 | H a l a m a n
3. Menggunakan Turbo Assembler Program debug yang telah dibuat sebelumnya dapat dikonversi ke dalam source turbo Assembler dengan langkah-langkah berikut: - Dari StartÆPrograms ÆAccessoriesÆCommand Prompt. - Dari StartÆRun, kemudian ketikkan cmd, kemudian ketik cmd, kemudian Enter atau klik tombol OK. - Ketikkan edit, kemudian tulis source berikut dan simpan dengan nama cetakaz.asm cetakaz.asm .MODEL SMALL .CODE ORG 100h mulai: MOV CX, 1Ah MOV DL, 41h Ulang: MOV AH, 02h INT 21h INC DL LOOP Ulang INT 20h end mulai
-
Kemudian jalankan program sehingga diperoleh tampilan sebagai berikut.
D:\TURBO_~1.0>tasm cetakaz Turbo Assembler
Version 2.0
Copyright (c) 1988, 1990 Borland International
Assembling file:
cetakaz.ASM
Error messages:
None
Warning messages:
None
Passes:
1
Remaining memory:
443k
D:\TURBO_~1.0>tlink/t cetakaz Turbo Link
Version 3.0 Copyright (c) 1987, 1990 Borland International
D:\TURBO_~1.0>cetakaz ABCDEFGHIJKLMNOPQRSTUVWXYZ
Tugas Praktikum : 1) Cobalah Program berikut mengunakan Instruksi Debug D:\TURBO_~1.0>debug -A100 137A:0100 MOV CX,0A 137A:0103 MOV DL,39 137A:0105 MOV AH, 02 137A:0107 INT 21 137A:0109 DEC DL 137A:010B LOOP 0105 137A:010D INT 20 137A:010F -g 9876543210 Program terminated normally -
4 | H a l a m a n
2) Berilah penjelasan dan analisa pemahaman anda dari program pada nomor 1) sebelumnya. 3) Tulis ulang program pada bagian 1) menggunakan turbo assembler 2.0 4) Tulislah program boleh menggunakan debug atau turbo assembler untuk menuliskan output berupa string POLITEKNIK. Diperiksa tanggal :_____________ Dosen Pengampu:
(M. Miftakul Amin, S. Kom., M. Eng.) NIP. 197912172012121001 Sumber referensi: 1. Belajar Sendiri Pemrograman dengan Bahasa Assembly. 1994. Susanto. Jakarta: Penerbit PT. Elexmedia Komputindo. 2. Hartono, Jogiyanto. 2000. Pengenalan Komputer. Yogyakarta: Penerbit Andi Offset Yogyakarta 3. Syahrul. 2012. Assembler (Bahasa Rakitan). Bandung: Penerbit Informatika Bandung. 4. Borland. 1994. Turbo Assembler 2.0 User’s Guide. Canada: Borland International
5 | H a l a m a n
Nama Laboratorium :
Nomor Komputer :