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 programprogram 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 : 1 H alaman 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.
D 0 l50 137A:0000 CD 20 FF 9F 00 9A EE FE1D F0 4F 03 DE 0D 8A 03....O... 137A:0010 DE 0D 17 03 DE 0D 0F 0401 01 01 00 02 FF FF FF... 137A:0020 FF FF FF FF FF FF FF FFFF FF FF FF 87 0D 4E 01...N. 137A:0030 9E 12 14 00 18 00 7A 13FF FF FF FF 00 00 00 00...z... 137A:0040 05 00 00 00 00 00 00 0000 00 00 00 00 00 00 00... 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. 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. 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 alaman
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. R AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=137A ES=137A SS=137A CS=137A IP=0100 NV UP EI PL NZ NA PO NC 137A:0100 0000 ADD [BX+SI],AL 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 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 alaman
3. Menggunakan Turbo Assembler Program debug yang telah dibuat sebelumnya dapat dikonversi ke dalam source turbo Assembler dengan langkahlangkah 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 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 alaman
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: Nama Laboratorium : Nomor Komputer : (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 alaman