Anda di halaman 1dari 5

Perintah DEBUG

DEBUG adalah alat bantu dalam perancangan peralatan berbasis mikro-prosesor, karena
dapat mencapai tingkat perangkat keras yang paling dalam dari suatu komputer, misal
menulis informasi ke dalam boot sector, direktori, FAT, menjalankan interupsi BIOS atau
DOS.
Hal-hal penting dalam Debug :
*Hanya mengenal dan selalu bekerja dengan bilangan-bilangan heksadesimal
*Bekerja dengan penunjukan ke alamat-alamat memori memakai format segment : offset.
*Kemampuan mengakses daerah very low level access (software / hardware). Setiap
jenis komputer (mainframe, minicomputer, microcomputer) memiliki sarana debugging
berbeda.
Langkah mengaktifkan DEBUG.EXE / DEBUG.COM :
a> Debug (enter)
Perintah DEBUG
1. R (Register)
Untuk menampilkan informasi komposisi register-register di dalam mikroprosesor, alamat
memori, serta isi dari alamat memori tersebut yang mungkin berupa instruksi yang akan
dilaksanakan oleh komputer, atau data.
Contoh :
A:\>DEBUG (enter)
r (enter)
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=29E7 ES=29E7 SS=29E7 CS=29E7 IP=0100 NV UP EI PL NZ NA PO NC
29E7:0100 0114 ADD[SI],DX DS:0000=20CD
AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, dan IP adalah register internal
mikroprosesor yang dipakai dalam CPU.
NV, UP, EI, PL, NZ, NA, PO, dan NC adalah output dari sebuah register yang disebut
register status atau register flag.
Angka 29E7:0100 adalah alamat lokasi memori dengan format segment:offset.
2. D (Dump)
Berfungsi untuk melihat isi blok memori.
Contoh :
A:\>Debug (enter)
-d 0100 (enter)
Dari tampilan tersebut, terbagi menjadi 3 bagian, yaitu :
Bagian kiri : menampilkan alamat-alamat memori dengan format segment:offset
Bagian tengah : menampilkan angka-angka dalam heksadesimal sebagai isi dari alamat-
alamat memori
Bagian kanan : menampilkan kode-kode karakter ASCII sebagai terjemahan dari angka
heksadesimal tersebut.
3. U (Unassemble)
Berfungsi untuk menampilkan listring dari suatu program bahasa mesin.
Contoh :
A:\>Debug (enter)
-U FFFF:0000 (enter)
4. F (Fill)
Berfungsi untuk mengisi lokasi memori. Perbedaan dengan perintah E (Enter), yang
menawarkan modifikasi memori secara satu alamt demi satu alamat, sedang F (Fill untuk
mengubah isi alamat memori dalam jumlah besar, sesuai dengan rentang (range) yang
dikehendaki.
Contoh :
A:\>Debug (enter)
-F 0100 017F 58 (enter)
Berarti isilah mulai alamat offset 0100 sampai offset 017F dengan nilai heksa 58 (karakter
ASCII x).
5. C (Compare)
Berfungsi untuk membandingkan isi sebuah blok memori dengan isi blok memori lainnya.
Format perintah : C alamat1 panjang alamat2
Contoh :
A:\>Debug (enter)
-C 0100 L 10 0200 (enter)
Berarti mulai offset 0100 sebanyak 16 byte (10 heksa) bandingkan dengan offset 0200.
Hasil yang dimunculkan hanyalah nilai-nilai yang berbeda setiap alamat.
6. S (Search)
Berfungsi untuk mencari data baik yang berupa karakter maupun untaian karakter (string)
di dalam suatu blok memori tertentu.
Contoh :
A:\>Debug (enter)
-S F000:E000 L FF IBM (enter)
Berarti mulai alamat F000:E000 sebanyak FFh byte cari string IBM.
-S F000:E000 L FF A (enter)
Berarti mulai alamat F000:E000 sebanyak FFh byte cari string A..
7. M (Move)
Berfungsi untuk memindahkan atau menyalin data yang ada di suatu lokasi memori ke
alamat memori lainnya.
Format perintah : M alamat asal panjang alamat tujuan
Contoh :
A:\>Debug (enter)
-M 0100 L 7F 0200 (enter)
Berarti mulai alamat offset 0100 sebanyak 7Fh byte isi memorinya pindahkan atau kopikan
ke offset 0200.
Dari pembahasan perintah-perintah DEBUG dapat disimpulkan bahwa DEBUG dibuat
dengan tujuan untuk dapat mengeksplorasi program-program yang sudah dibuat berikut
segala dampaknya terhadap sistem dan aplikasi, sedangkan ASSEMBLY diadakan
dengan untuk mempermudah seorang programmer dalam menyusun instruksi-instruksi
pada sebuah program yang sedang dibuat.
INSTRUKSI-INSTRUKSI MIKROPROSESOR
` Untuk dapat mempergunakan serta memanfaatkan sebuah mikroprosesor, kita harus
mengenal terlebih dahulu instruksi-instruksi yang bisa dijalankan oleh mikroprosesor yang
bersangkutan. Karena pada hakekatnya, seluruh kemampuan yang ada pada
mikroprosesor terletak pada kecanggihan perintah-perintah yang terdapat didalamnya.
Tanpa adanya instruksi-instruksi yang membentuk sebuah program, mikroprosesor tidak
lebih hanya merupakan serpihan tanpa guna. Setiap mikroprosesor mempunyai
perbendaharaan instruksi sendiri-sendiri, yang disebut dengan Set Instruksi atau
Instruction Set.
Operasi, Operator dan Operand
Pada dasarnya mikroprosesor mampu melakukan beberapa jenis operasi, antara lain
operasi perhitungan (arithmetic), operasi logika (logical operation), operasi transfer data
(data transfer operation), manipulasi string serta kendali prosesor.
Masing-masing jenis instruksi tersebut adalah sebagai berikut :
a. Perhitungan
ADD (penjumlahan), SUB (pengurangan), MUL (perkalian), DIV (pembagian)
b. Logika
AND (logika DAN), OR (logika OR), XOR (logika Exclusive OR)
c. Transfer Data
MOV (pindahkan/salin), IN (Input), OUT (Output), dan sebagainya.
d. Transfer Kendali
JMP (loncat), CALL (panggil), RET (kembali), INT (interupsi), dsb
e. Manipulasi String
MOVS (pindahkan/salin string), CMPS (bandingkan string), LODS (muatkan byte/word ke
register AX), dan sebagainya.
f. Kendali Prosesor
CLC (hilangkan bawaan/carry), CLI (hilangkan interupsi), dan sebagainya.
Operasi Transfer Data
1. Pemindahan data dari data register ke register
Format : MOV register, register
Contoh :
-a 0100 (enter)
xxxx : 0100 mov AX,DX (enter)
2. Pemindahan data dari memori ke register
Format : MOV register, memori
Contoh :
-a 0100 (enter)
xxxx : 0100 mov BX,[0200] (enter)
xxxx : 0104 (enter)
3. Memindahkan data langsung ke dalam register
Format : MOV register, bilangan
Contoh :
-a 0100 (enter)
xxxx : 0100 mov AX,1111 (enter)
xxxx : 0103 mov BX,2222 (enter)
xxxx : 0106 mov CX,3333 (enter)
xxxx : 0109 mov DX,4444 (enter)
xxxx : 010C (enter)
-a 0100
xxxx : 0100 mov AH,FFFF (enter)
xxxx : 010C (enter)
Apa yang terjadi ? Beri alasan !
4. Memindahkan data dari register ke memori
Format : MOV memori, register
Contoh :
-a 0100
xxxx : 0100 mov [0200],AX (enter)
xxxx : 0103 (enter)
5. Pertukaran data antar register
Format : XCHG register, register
Contoh :
-a 0100
xxxx : 0100 xchg AX,BX (enter)
xxxx : 0102 (enter)
Operasi Aritmatik
a. Menjumlahkan dua bilangan dengan perintah ADD
Format : ADD register,register
b. Mengurangkan dua bilangan dengan perintah SUB
Format : SUB register,register
c. Perkalian dua bilangan dengan perintah MUL
Format : MUL register
d. Membagi dua bilangan dengan perintah DIV
Format : DIV register
Operasi Logika
a. Instruksi logika AND
Format : AND register,register
b. Instruksi logika OR
Format : OR register,register
c. Instruksi logika XOR
Format : XOR register,register
Contoh Program Debug
pengertian:
A adalah Bahasa ASEMBLER
Mov ax, 4 : memindahkan axumulator ke register
Mov dx, 2 : memindahkan axumulator ke register
NU : NO OVERFLOW
UP :
EI :
PL : PLUS
NZ : NO ZERO
NA : AXUALIARI
PO : PARITY ADD
NC : NO CARY

Anda mungkin juga menyukai