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