01B. Instruksi Debug

Download Report

Transcript 01B. Instruksi 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
 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
- a 100
0B0A:0100
0B0A:0103
0B0A:0106
0B0A:0109
0B0A:010C
0B0A:010E
- R
- T
- T
- T
- P
- Q
mov
add
add
mov
int 20
ax,5
ax,10
ax,20
[0200],ax
Perhatikan alamat memori
masing-masing. Apakah sama
dengan contoh di samping?
Bagaimana dengan selisih
offset tiap baris?
; menampilkan register
; trace satu instruksi
; eksekusi program
; 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
136F:0102
136F:0104
136F:0106
136F:0108
136F:010A
136F:010C
136F:010E
136F:0110
136F:0112
136F:0114
136F:0116
136F:0118
136F:011A
136F:011C
136F:011E
mov
mov
int
mov
mov
int
mov
mov
int
mov
mov
int
mov
mov
int
int
dl,48
ah,02
21
dl,45
ah,02
21
dl,4c
ah,02
21
dl,4c
ah,02
21
dl,4f
ah,02
21
20
Apakah yang dilakukan
program di samping?