Dokumen tersebut membahas tentang pengertian dan konsep dasar dari debugging pemograman komputer menggunakan bahasa assembly. Debugging digunakan untuk melacak sistem komputer dengan mengakses register komputer secara langsung. Terdapat berbagai perintah dasar debugging seperti MOV, ADD, INC, DEC yang digunakan untuk mengolah data di register. Debugging memungkinkan pengembang untuk menampilkan output ke layar dan mengakses layanan sistem operasi untuk ke
2. PengertianPengertian
DeBUG berasal dari kata The BUG ygDeBUG berasal dari kata The BUG yg
berarti KUTUberarti KUTU
Program yg digunakan utk pelacakan sistemProgram yg digunakan utk pelacakan sistem
KomputerKomputer
Menggunakan Bahasa Mesin (Assembler) utkMenggunakan Bahasa Mesin (Assembler) utk
pemogramannyapemogramannya
Ditujukan langsung ke sistem RegisterDitujukan langsung ke sistem Register
Komputer (Memory Komputer)Komputer (Memory Komputer)
3. Sistem Register KomputerSistem Register Komputer
Ada 8 macam registerAda 8 macam register
Register A (AH dan ALRegister A (AH dan AL AX)AX)
Register B (BH dan BLRegister B (BH dan BL BX)BX)
Register C (CH dan CLRegister C (CH dan CL CX)CX)
Register D (DH dan DLRegister D (DH dan DL DX)DX)
Register ES dan CSRegister ES dan CS
Register DS (Data Segment)Register DS (Data Segment)
Register SP (Stack Pointer)Register SP (Stack Pointer)
Register F (Flag)Register F (Flag)
4. Register yang paling umum digunakanRegister yang paling umum digunakan
dan terlibat langsung dalam operasidan terlibat langsung dalam operasi
Prosesor antara lain :Prosesor antara lain :
A (Accumulator) : digunakan untukA (Accumulator) : digunakan untuk
penampungan data umumpenampungan data umum
B (Base) : digunakan untuk nilai dasarB (Base) : digunakan untuk nilai dasar
C (Counter) : digunakan untuk nilaiC (Counter) : digunakan untuk nilai
pengulanganpengulangan
D (Data) : digunakan utk penyimpanan dataD (Data) : digunakan utk penyimpanan data
pengolahanpengolahan
5. Memulai DEBUGMemulai DEBUG
Dapat dimulai dari prompt Windows,Dapat dimulai dari prompt Windows,
dengan langkah :dengan langkah :
Masuk ke sistem DOS (Command)Masuk ke sistem DOS (Command)
- Klik Star- Klik Star RunRun ketikkan CMD lalu Enterketikkan CMD lalu Enter
Pindah Directory : CD lalu enterPindah Directory : CD lalu enter
Dari C:> (prompt C) ketikkan DEBUG laluDari C:> (prompt C) ketikkan DEBUG lalu
EnterEnter
Dengan tanda hypenation ( _ ) maka debugDengan tanda hypenation ( _ ) maka debug
siap dioperasikansiap dioperasikan
7. Perintah-perintah DEBUGPerintah-perintah DEBUG
Secara umum perintah DEBUG dapatSecara umum perintah DEBUG dapat
dilihat dengan cara :dilihat dengan cara :
Ketikkan tanda tanya (?) pada hypenation DEBUGKetikkan tanda tanya (?) pada hypenation DEBUG
_? (enter)_? (enter)
Perintah DEBUG dapat dimulai denganPerintah DEBUG dapat dimulai dengan
mengetikkan huruf awal perintah sbb:mengetikkan huruf awal perintah sbb:
A C D E F G H I L M N O P Q R S T U WA C D E F G H I L M N O P Q R S T U W
8. Perintah DebugPerintah Debug
A (Assembler)A (Assembler) C (Compare)C (Compare)
D (Dump)D (Dump) E (enter)E (enter)
F (Fill)F (Fill) G (Go)G (Go)
H (Hex)H (Hex) I (Input)I (Input)
L (Load)L (Load) M (Move)M (Move)
N (Name)N (Name) O (Output)O (Output)
P (Process)P (Process) Q (Quit)Q (Quit)
R (Register)R (Register) S (Search)S (Search)
T (Trace)T (Trace) U (UnAssemble)U (UnAssemble)
W (Write)W (Write)
9. Register KomputerRegister Komputer
AX (AH dan AL)AX (AH dan AL)
BX (BH dan BL)BX (BH dan BL)
CX (CH dan CL)CX (CH dan CL)
DX (DH dan DL)DX (DH dan DL)
FlagFlag
ESES
IPIP
10. Dasar Pemograman AssemblerDasar Pemograman Assembler
Memulai Assembler dengan DebugMemulai Assembler dengan Debug
_ A100 (A= Assembler, 100=lokasi_ A100 (A= Assembler, 100=lokasi
memori awal tempat program assemblermemori awal tempat program assembler
dibuat)dibuat)
xxxx:0100 _xxxx:0100 _
11. Perintah-perintah Dasar AssemblerPerintah-perintah Dasar Assembler
MOV : memindahkan data dari regiterMOV : memindahkan data dari regiter
register atau Registerregister atau Register MemoryMemory
Sintaxnya :Sintaxnya :
MOV [register,nilai] Misalnya MOV AX,02 atauMOV [register,nilai] Misalnya MOV AX,02 atau
MOV [register,register] misalnya MOV AX,DXMOV [register,register] misalnya MOV AX,DX
ADD : menambahkan isi register denganADD : menambahkan isi register dengan
Nilai register lainnyaNilai register lainnya
Sintaxnya : ADD [register] misalnya ADD AXSintaxnya : ADD [register] misalnya ADD AX
12. INCINC
DECDEC
INTINT
Interupsi 10 (service 02 dan service 09)Interupsi 10 (service 02 dan service 09)
Service untuk pengaturan tampilan ke layarService untuk pengaturan tampilan ke layar
Interupsi 20 ; mengakhiri programInterupsi 20 ; mengakhiri program
Interupsi 21 ; layanan Sistem OperasiInterupsi 21 ; layanan Sistem Operasi
LOOPLOOP
14. Menampilkan Informasi ke LayarMenampilkan Informasi ke Layar
Interupsi 10 Service 9Interupsi 10 Service 9
Menampilkan karakter ke layarMenampilkan karakter ke layar
Data Service diisikan pada register AHData Service diisikan pada register AH
Data huruf diisikan pada register ALData huruf diisikan pada register AL
Halaman Layar dibuat 0 pada Register BHHalaman Layar dibuat 0 pada Register BH
Warna pada layar diisikan pada register BL denganWarna pada layar diisikan pada register BL dengan
ketentuan bit MSB background dan LSB foreground,ketentuan bit MSB background dan LSB foreground,
misalnya 17 berarti warna Background 1 (blue) danmisalnya 17 berarti warna Background 1 (blue) dan
foreground 7 (putih) nilai dikategorika pada warna RGBforeground 7 (putih) nilai dikategorika pada warna RGB
Banyak karakter yang ditampilkan diatur dengan nilai CXBanyak karakter yang ditampilkan diatur dengan nilai CX
16. LatihanLatihan
Tampilkan lah 10 huruf ATampilkan lah 10 huruf A
Penyelsaian :Penyelsaian :
MOV AH,9MOV AH,9 //mengisikan nilai service int10//mengisikan nilai service int10
MOV AL,41MOV AL,41 //mengisikan karakter ASCII A//mengisikan karakter ASCII A
MOV BH,0MOV BH,0 //mengatur mode halaman layar//mengatur mode halaman layar
MOV BL,17MOV BL,17 //mengatur warna tampilan//mengatur warna tampilan
MOV CX,AMOV CX,A //mengatur nilai pengulangan//mengatur nilai pengulangan
INT 10INT 10 //interupsi berhbgn layar//interupsi berhbgn layar
INT 20INT 20 //mengakhiri program//mengakhiri program
17. Mengatur Posisi KursorMengatur Posisi Kursor
Interupsi 10 service 2Interupsi 10 service 2
Data service diisikan pada register AHData service diisikan pada register AH
Posisi Baris kursor diisikan pada registerPosisi Baris kursor diisikan pada register
DHDH
Posisi Kolom Kursor diisikan pada registerPosisi Kolom Kursor diisikan pada register
DLDL
Posisi halaman layar dibuat 0 dan diisikanPosisi halaman layar dibuat 0 dan diisikan
pada register BHpada register BH
19. LatihanLatihan
Tampilkanlah satu huruf A berwarnaTampilkanlah satu huruf A berwarna
merah berlatar putih ditengah layarmerah berlatar putih ditengah layar
Asumsi : layar komputer mode textAsumsi : layar komputer mode text
berukuran resolusi 80x25 (kolomxbaris)berukuran resolusi 80x25 (kolomxbaris)
20. MOV AH,2MOV AH,2
MOV DH,CMOV DH,C //nilai C = 12//nilai C = 12 barisbaris
MOV DL,24MOV DL,24 //nilai 24= 36//nilai 24= 36 kolomkolom
MOV BH,0MOV BH,0
INT 10INT 10
MOV AH,9MOV AH,9 //mengisikan nilai service int10//mengisikan nilai service int10
MOV AL,41MOV AL,41 //mengisikan karakter ASCII A//mengisikan karakter ASCII A
MOV BH,0MOV BH,0 //mengatur mode halaman layar//mengatur mode halaman layar
MOV BL,47MOV BL,47 //mengatur warna tampilan//mengatur warna tampilan
MOV CX,1MOV CX,1 //mengatur nilai pengulangan//mengatur nilai pengulangan
INT 10INT 10 //interupsi berhbgn layar//interupsi berhbgn layar
INT 20INT 20 //mengakhiri program//mengakhiri program
21. Tugas dan LatihanTugas dan Latihan
Buatlah tampilan Bendera Merah Putih diBuatlah tampilan Bendera Merah Putih di
Sudut Kanan Atas, panjang bendera 10Sudut Kanan Atas, panjang bendera 10
karakter. (ASCII karakter kosong/spasikarakter. (ASCII karakter kosong/spasi
adalah 20)adalah 20)
22. Analisa Logika ProgramAnalisa Logika Program
MOV AH,2MOV AH,2
MOV DH,1MOV DH,1 // 1=baris 2=baris 2// 1=baris 2=baris 2
MOV DL,46MOV DL,46 //nilai 46= 70//nilai 46= 70 kolomkolom
MOV BH,0MOV BH,0
INT 10INT 10
MOV AH,9MOV AH,9 //mengisikan nilai service int10//mengisikan nilai service int10
MOV AL,20MOV AL,20 //mengisikan karakter ASCII Spasi//mengisikan karakter ASCII Spasi
MOV BH,0MOV BH,0 //mengatur mode halaman layar//mengatur mode halaman layar
MOV BL,44MOV BL,44 //44=merah 77=putih//44=merah 77=putih
MOV CX,AMOV CX,A //panjang karakter bendera//panjang karakter bendera
INT 10INT 10 //interupsi berhbgn layar//interupsi berhbgn layar
INT 20INT 20 //mengakhiri program//mengakhiri program
23. Fungsi / ProsedureFungsi / Prosedure
Adalah suatu rutin program yg dilakukanAdalah suatu rutin program yg dilakukan
utk mengerjakan suatu modul tertentuutk mengerjakan suatu modul tertentu
yang merupakan bagian dari programyang merupakan bagian dari program
induk.induk.
Program Induk
…..
……. Fungsi
24. Implementasi Fungsi dalamImplementasi Fungsi dalam
DEBUGDEBUG
Perintah CALL … RETPerintah CALL … RET
Digunakan utk menjalankan suatu fungsiDigunakan utk menjalankan suatu fungsi
Perintah PUSH … POPPerintah PUSH … POP
Digunakan utk menyimpan nilai RegisterDigunakan utk menyimpan nilai Register
ke StackPointer dengan tujuan agar Nilaike StackPointer dengan tujuan agar Nilai
ini dapat di pakai kembali jika prosesini dapat di pakai kembali jika proses
selesai.selesai.
Push…Pop menganut sistem FILOPush…Pop menganut sistem FILO
(First IN Last OUT)(First IN Last OUT)
25. Implementasi Call Ret padaImplementasi Call Ret pada
Aplikasi BenderaAplikasi Bendera
26. Aplikasi Animasi dengan DebugAplikasi Animasi dengan Debug
Membuat Suatu karakter (huruf O=4F)Membuat Suatu karakter (huruf O=4F)
bergerak dari pinggir kiri layar ke kananbergerak dari pinggir kiri layar ke kanan
layar di posisi tengah layarlayar di posisi tengah layar