Pemograman DEBUG
Pengertian DeBUG berasal dari kata The BUG yg berarti KUTU Program yg digunakan utk pelacakan sistem Komputer Menggunakan Bahasa Mesin (Assembler) utk pemogramannya Ditujukan langsung ke sistem Register Komputer (Memory Komputer)
Sistem Register Komputer Ada 8 macam register Register A (AH dan AL AX) Register B (BH dan BL BX) Register C (CH dan CL CX) Register D (DH dan DL DX) Register ES dan CS Register DS (Data Segment) Register SP (Stack Pointer) Register F (Flag)
Register yang paling umum digunakan dan terlibat langsung dalam operasi Prosesor antara lain : A (Accumulator) : digunakan untuk penampungan data umum B (Base) : digunakan untuk nilai dasar C (Counter) : digunakan untuk nilai pengulangan D (Data) : digunakan utk penyimpanan data pengolahan
Memulai DEBUG Dapat dimulai dari prompt Windows, dengan langkah : Masuk ke sistem DOS (Command) - Klik Star Run ketikkan CMD lalu Enter Pindah Directory : CD\ lalu enter Dari C:\> (prompt C) ketikkan DEBUG lalu Enter Dengan tanda hypenation ( _ ) maka debug siap dioperasikan
Tampilan…
Perintah-perintah DEBUG Secara umum perintah DEBUG dapat dilihat dengan cara : Ketikkan tanda tanya (?) pada hypenation DEBUG _? (enter) Perintah DEBUG dapat dimulai dengan mengetikkan huruf awal perintah sbb: A C D E F G H I L M N O P Q R S T U W
Perintah Debug A (Assembler) C (Compare) D (Dump) E (enter) F (Fill) G (Go) H (Hex) I (Input) L (Load) M (Move) N (Name) O (Output) P (Process) Q (Quit) R (Register) S (Search) T (Trace) U (UnAssemble) W (Write)
Register Komputer AX (AH dan AL) BX (BH dan BL) CX (CH dan CL) DX (DH dan DL) Flag ES IP
Dasar Pemograman Assembler Memulai Assembler dengan Debug _ A100 (A= Assembler, 100=lokasi memori awal tempat program assembler dibuat) xxxx:0100 _
Perintah-perintah Dasar Assembler MOV : memindahkan data dari regiter register atau Register Memory Sintaxnya : MOV [register,nilai] Misalnya MOV AX,02 atau MOV [register,register] misalnya MOV AX,DX ADD : menambahkan isi register dengan Nilai register lainnya Sintaxnya : ADD [register] misalnya ADD AX
INC DEC INT LOOP Interupsi 10 (service 02 dan service 09) Service untuk pengaturan tampilan ke layar Interupsi 20 ; mengakhiri program Interupsi 21 ; layanan Sistem Operasi LOOP
Program Aplikasi dengan DEBUG/Assembler
Menampilkan Informasi ke Layar Interupsi 10 Service 9 Menampilkan karakter ke layar Data Service diisikan pada register AH Data huruf diisikan pada register AL Halaman Layar dibuat 0 pada Register BH Warna pada layar diisikan pada register BL dengan ketentuan bit MSB background dan LSB foreground, misalnya 17 berarti warna Background 1 (blue) dan foreground 7 (putih) nilai dikategorika pada warna RGB Banyak karakter yang ditampilkan diatur dengan nilai CX
Misalnya MOV AH,9 MOV AL,43 MOV BH,0 MOV BL,17 MOV CX,1 INT 10 INT 20
Latihan Tampilkan lah 10 huruf A Penyelsaian : MOV AH,9 //mengisikan nilai service int10 MOV AL,41 //mengisikan karakter ASCII A MOV BH,0 //mengatur mode halaman layar MOV BL,17 //mengatur warna tampilan MOV CX,A //mengatur nilai pengulangan INT 10 //interupsi berhbgn layar INT 20 //mengakhiri program
Mengatur Posisi Kursor Interupsi 10 service 2 Data service diisikan pada register AH Posisi Baris kursor diisikan pada register DH Posisi Kolom Kursor diisikan pada register DL Posisi halaman layar dibuat 0 dan diisikan pada register BH
Misalnya MOV AH,2 MOV DH,C //nilai C = 12 MOV DL,24 MOV BH,0 INT 10
Latihan Tampilkanlah satu huruf A berwarna merah berlatar putih ditengah layar Asumsi : layar komputer mode text berukuran resolusi 80x25 (kolomxbaris)
MOV AH,2 MOV DH,C //nilai C = 12 baris MOV DL,24 //nilai 24= 36 kolom MOV BH,0 INT 10 MOV AH,9 //mengisikan nilai service int10 MOV AL,41 //mengisikan karakter ASCII A MOV BH,0 //mengatur mode halaman layar MOV BL,47 //mengatur warna tampilan MOV CX,1 //mengatur nilai pengulangan INT 10 //interupsi berhbgn layar INT 20 //mengakhiri program
Tugas dan Latihan Buatlah tampilan Bendera Merah Putih di Sudut Kanan Atas, panjang bendera 10 karakter. (ASCII karakter kosong/spasi adalah 20)
Analisa Logika Program MOV AH,2 MOV DH,1 // 1=baris 2=baris 2 MOV DL,46 //nilai 46= 70 kolom MOV BH,0 INT 10 MOV AH,9 //mengisikan nilai service int10 MOV AL,20 //mengisikan karakter ASCII Spasi MOV BH,0 //mengatur mode halaman layar MOV BL,44 //44=merah 77=putih MOV CX,A //panjang karakter bendera INT 10 //interupsi berhbgn layar INT 20 //mengakhiri program
Fungsi / Prosedure Adalah suatu rutin program yg dilakukan utk mengerjakan suatu modul tertentu yang merupakan bagian dari program induk. Program Induk ….. ……. Fungsi
Implementasi Fungsi dalam DEBUG Perintah CALL … RET Digunakan utk menjalankan suatu fungsi Perintah PUSH … POP Digunakan utk menyimpan nilai Register ke StackPointer dengan tujuan agar Nilai ini dapat di pakai kembali jika proses selesai. Push…Pop menganut sistem FILO (First IN Last OUT)
Implementasi Call Ret pada Aplikasi Bendera
Aplikasi Animasi dengan Debug Membuat Suatu karakter (huruf O=4F) bergerak dari pinggir kiri layar ke kanan layar di posisi tengah layar
Tugas