Eksplorasi Prosesor 8086 Dengan Program DEBUG • • • • •
• •
Program DEBUG dapat digunakan untuk mengeksplorasi keluarga prosesor 8086 termasuk PENTIUM pada PC Program DEBUG telah disertakan setiapkali user melakukan instalasi WINDOWS Untuk menjalankan DEBUG, click Start-Run, kemudian ketik CMD dan click OK sehingga muncul pada layar prompt DOS. Dari prompt DOS ketik DEBUG: C:>DEBUG diikuti ENTER Prompt DEBUG ditandai dengan tanda minus dikuti kursor berkedip: -_ Terdapat 19 menu DEBUG, untuk melihatnya ketik -? diikuti ENTER
Eksplorasi Prosesor 8086 Dengan Program DEBUG •
Melihat isi register, ketik: -R diikuti ENTER, maka akan muncul di layar:
•
Hal itu menandakan bahwa isi register AX=0000 atau AH=00 dan AL=00, AH
•
AL
BX=0000 atau BH=00 dan BL=00, CX=0000 atau CH=00 dan CL=00, DX=0000 atau DH=00 dan DL=00 Keadaan set dan reset register bendera pada DEBUG dinyatakan dengan singkatan NV, UP, EI, PL, NZ, NA, PO, NC
Eksplorasi Prosesor 8086 Dengan Program DEBUG • Singkatan untuk keadaan register bendera: Coba kita perhatikan register bendera kondisi saja yakni bendera overflow, bendera sign, bendera zero, bendera auxiliary carry, bendera parity dan bendera carry. Keadaan set dan reset bendera-bendera itu dinyatakan dengan singkatan: Bendera overflow: OV (Overflow atau terjadi overflow atau OF=1=set) NV (No Overflow atau tidak terjadi overflow atau OF=0=reset) Bendera sign: NG (Negative atau SF=1=set) PL (Plus atau SF=0=reset) Bendera zero: ZR (Zero atau ZF=1=set) NZ (No Zero atau ZF=0=reset)
Eksplorasi Prosesor 8086 Dengan Program DEBUG Bendera auxiliary carry: NA (No Auxiliary carry atau AF=0=reset) AC (Auxiliary carry atau AF=1=set) Bendera paritas: PO (Parity Odd=paritas ganjil atau PF=0=reset) PE (Parity Even=paritas genap atau PF=1=set) Bendera Carry: NC (No Carry atau CF=0=reset) CY (carry atau CF=1=set)
Eksplorasi Prosesor 8086 Dengan Program DEBUG •
Contoh jika DEBUG menampilkan keadaan flag: NV UP EI PL NZ NA PO NC Artinya: hasil perhitungan ALU tidak overflow (NV), bernilai positif (PL), tidak bernilai 0 (NZ), tidak ada carry pada penjumlahan bit ke-3 (NA), berparitas ganjil (PO) dan tidak ada carry (NC)
•
Analisis: Misal kita menulis program assembly dengan perintah A dan menjalankannya baris demi baris dengan perintah T (trace):
Eksplorasi Prosesor 8086 Dengan Program DEBUG • Perintah di atas yakni: MOV AL,3 ADD AL,2 ketika baris pertama dijalankan, isi AL=03 dan setelah baris kedua dijalankan isi AL menjadi AL=05 heksadesimal. Hal itu menunjukkan bahwa instruksi pertama MOV AL,3 menyebabkan akumulator AL terisi 3 heksadesimal, baris kedua menyebabkan isi AL ditambah dengan 2 heksadesimal sehingga menjadi 5 heksadesimal. Pada akhir pelaksanaan kedua perintah tersebut, DEBUG menghasilkan keadaan register bendera sebagai berikut: NV UP EI PL NZ NA PE NC
Eksplorasi Prosesor 8086 Dengan Program DEBUG Hal itu berarti: • Hasil pemrosesesan TIDAK OVERFLOW (NV=NO OVERFLOW), mengapa? Cout C7 C4
C1
0 0000 010 +03= 0000 0011 +02= 0000 0010 --------------------------------------
AL= 0000 0101
Carry (C) Rumus: Terjadi overflow jika Cout dan C7 berbeda, jika sama tidak overflow!!!
Eksplorasi Prosesor 8086 Dengan Program DEBUG • Hasil pemrosesan bernilai positif (PL=PLUS) +03= 0000 0011 +02= 0000 0010 ----------------------AL = 0000 0101 + Perhatikan, bit paling kiri bernilai 0 sehingga me nunjukkan bilangan itu +. • Hasil pemrosesan tidak nol (NZ=NO ZERO)
Eksplorasi Prosesor 8086 Dengan Program DEBUG • Hasil pemrosesesan TIDAK ada auxiliary carry (NA=No Auxiliary Carry): Perhatikan C4 di atas! C4 adalah Auxiliary Carry. Karena C4=0 berarti tidak ada auxiliary carry. Sebaliknya jika C4=1, berarti ada auxiliary carry. • Hasil pemrosesan berparitas genap (PE=parity even): Perhatikan hasil AL=0000 0101, krn jumlah “1” nya genap maka hasil itu berparitas genap. • Hasil pemrosesan tidak ada carry out (NC=NO Carry), karena Cout=0.
Eksplorasi Prosesor 8086 Dengan Program DEBUG LATIHAN: Tulislah program assembly 8086 menggunakan aplikasi DEBUG untuk menjumlahkan bilangan heksadesimal: 23+51, 23+(-51), 23-23, dan 23+7F. Amati setiap baris program dijalankan. Lakukan analisis terhadap isi register bendera dari setiap proses yang dilakukan. Kata kunci yang digunakan adalah MOV dan ADD, serta akumulator AL.
Eksplorasi Prosesor 8086 Dengan Program DEBUG MEMORI: Melihat isi memori pada alamat 100: -D100 diikuti enter Misal jika kita menulis program assembly: MOV AL,3 ADD AL,2 maka DEBUG akan mengubahnya menjadi kodekode mesin dalam format heksadesimal menjadi: MOV AL,3 B0 03 ADD AL,2 04 02 format mesin
Eksplorasi Prosesor 8086 Dengan Program DEBUG Dengan menggunakan perintah D, akan ditampilkan:
Hal itu menunjukkan kode B0 disimpan di alamat 100, kode 03 di alamat 101, kode 04 di alamat 102, dan kode 02 di alamat 103.
Eksplorasi Prosesor 8086 Dengan Program DEBUG Untuk melihat isi register sebelum perintah-perintah itu dijalankan gunakan perintah R. Jika kedua perintah tersebut dijalankan baris per baris dengan perintah T, maka:
terlihat mula-mula IP=100 (alamat awal program, dibuat otomatis oleh DEBUG), setelah baris 1 dijalankan IP=102 (alamat instruksi ke2). Jadi IP berisi alamat instruksi berikutnya yang akan dilaksanakan.
Eksplorasi Prosesor 8086 Dengan Program DEBUG LATIHAN: Susun program assembly dengan DEBUG: MOV AL,12 ADD AL,35 SUB AL,40 Susunlah memori yang menunjukkan kode-kode mesin untuk instruksi2 tersebut disimpan! Berapa isi IP untuk setiap baris selesai dijalankan?