160 likes | 472 Views
DEBUG. DEBUG. Pembuatan program dengan menggunakan bahasa Assembly : Debug 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.
E N D
DEBUG • Pembuatan program dengan menggunakan bahasa Assembly : • Debug • Macro Assembler (TASM) • Semua bilangan dalam DEBUG menggunakanheksadesimal • 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: • - E200 • - 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? - a100 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 - 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 Apakah yang dilakukan program di samping? - 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