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?