DEBUG
DEBUG Pembuatan program dengan menggunakan bahasa Assembly : Macro Assembler (TASM) Semua bilangan dalam DEBUG menggunakan heksadesimal Hanya untuk program singkat (1 segment = 64 KB) dengan extension .COM Komentar ; C:>DEBUG <enter>
Operand Operand bisa berupa register, variabel, memory location atau immediate value 10 (immediate value) count (variable/label) [tidak didukung di DEBUG] ax (register) [0200] (memory location) Assembly language terdiri dari instruction dan operand clc ; hanya mnemonic inc ax ; single operand mov ax,bx ; double operand
A (Assemble) Format : A address Address = alamat untuk memulai membuat program Tujuan : untuk membuat program langsung ke memori Contoh – A 100 CS : 100 Catatan : tombol ENTER akan meneruskan ke baris berikutnya dari program, jika selesai membuat program, tekan ENTER pada baris yang kosong berikutnya untuk kembali ke prompt DEBUG
E (Enter) Format : E address [data] Address = alamat untuk menampung data Tujuan : untuk mengisikan data langsung ke memori Contoh: - E 200 - E 250 12 34 56 Catatan : data dimasukkan sebagai kode heksadesimal. Jika data tidak disediakan dari awal, isikan per byte dan gunakan tombol SPASI untuk pindah ke byte berikutnya. Akhiri pemasukan data dengan ENTER.
G (Go) Format : G = address1 [address2] Jika [address1] dan [address2] didefinisikan maka program akan dijalankan mulai dari address1 sampai addres 2 Tujuan : untuk menjalankan program yang ada dalam memori Contoh : - G = 200 240 (menjalankan program mulai CS : 200 dan berakhir pada alamat CS : 240) - G A Program terminated normally
R (Register) Format : R [nama register] Tujuan : menampilkan dan mengubah isi register Contoh - R untuk mengetahui isi dari masing-masing register - R CX menampilkan dan memperbaiki isi dari register CX
T (Trace) Format : T = [address] [value] [address] adl alamat awal tempat dilakukan trace; [value] banyaknya instruksi yang akan dijalankan Tujuan : menjalankan program sambil menampilkan register yang dipakai Contoh - T hanya untuk memproses satu baris program - T 102 3 akan memeriksa tiga instruksi pertama, mulai alamat CS : 102
Q (Quit) Format : Q Tujuan : keluar dari DEBUG tanpa melakukan perekaman Contoh : - Q
Contoh program #1 Perhatikan alamat memori masing-masing. Apakah sama dengan contoh di samping? Bagaimana dengan selisih offset tiap baris? - a 100 0B0A:0100 mov ax,5 0B0A:0103 add ax,10 0B0A:0106 add ax,20 0B0A:0109 mov [0200],ax 0B0A:010C int 20 0B0A:010E - R ; menampilkan register - T ; trace satu instruksi - T - P ; eksekusi program - Q ; kembali ke DOS
D (Dump) Menampilkan isi memori sebagai data
U (UnAssemble) Menampilkan isi memori sebagai kode assembly
INT 21 (Fungsi 2) Format : INT 21 Input: AH: 02 (nomor fungsi) DL: kode karakter (dalam heksadesimal di DEBUG) Tujuan : menulis karakter ke layar komputer
INT 20 Format : INT 20 Tujuan : menghentikan program
Contoh Program #2 - a 100 136F:0100 mov dl,48 136F:0102 mov ah,02 136F:0104 int 21 136F:0106 mov dl,45 136F:0108 mov ah,02 136F:010A int 21 136F:010C mov dl,4c 136F:010E mov ah,02 136F:0110 int 21 136F:0112 mov dl,4c 136F:0114 mov ah,02 136F:0116 int 21 136F:0118 mov dl,4f 136F:011A mov ah,02 136F:011C int 21 136F:011E int 20 Apakah yang dilakukan program di samping?