Bahasa RakitanABM 1 Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt.

Slides:



Advertisements
Presentasi serupa
JWASM Input Keyboard.
Advertisements

Program Bahasa Rakitan Tanpa DEBUG.COM
Pemograman DEBUG.
Bahasa Assembley & Program COM
Bhakti Yudho Suprapto, MT
JWASM Macro.
Turbo Assembly Membuat Program .EXE.
Turbo Assembly Masukan dari Keyboard.
REGISTER Oleh : Oman Somantri, S.Kom
DEBUG.
Pemrograman Mikroprosesor
Turbo Assembler TASM.
Program Bahasa Rakitan Tanpa DEBUG.COM
Mode Pengalamatan Mengatasi keterbatasan format instruksi
Procedure. Procedure???? Procedure merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program yang besar bisa diselesaikan dengan.
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
Johannes Simatupang, MKom, Cobit5-F NIDN :
JWASM Mencetak angka.
BAHASA RAKITAN BAGIAN 3.
PENERAPAN KOMPUTER BAGIAN 1. POKOK BAHASAN 1. PENGENALAN KOMPUTER 2. BAHASA BASIC DAN DIAGRAM ALIR 3. VARIABEL DAN KONSTANTA A. STATEMEN MENAMPILKAN DATA.
REGISTER.
Operasi Layar.
Mode Pengalamatan.
Pengantar Bahasa Rakitan
Pertemuan 1 Mengapa Belajar Bahasa Rakitan ??
MENGOPERASIKAN SISTEM KOMPUTER
EE-2623 Mikroprosesor & Antarmuka
SISTEM BILANGAN DAN REGISTER
Program Bahasa Rakitan dengan DEBUG.COM
Pertemuan 5 Struktur program bahasa rakitan
Instruksi Perpindahan Data
Arsitektur Perangkat Lunak 8086
BAHASA RAKITAN BAGIAN 1.
BAHASA RAKITAN BAGIAN 2.
PENGANTAR TEKNOLOGI INFORMASI PENGANTAR SISTEM KOMPUTER
Praktikum 6.
Register.
1 Pertemuan 4 Menggambar titik Matakuliah: T0074 / Grafika Komputer Tahun: 2005 Versi: Versi 1 / Revisi 0.
SISTEM OPERASI Pertemuan 2 : Konsep Dasar Sistem Operasi
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Pengenalan Assembler.
Program Bahasa Rakitan dengan DEBUG.COM
BIOS, DOS, dan String.
SISTEM PENGOLAHAN DATA KOMPUTER
Pengantar Bahasa Rakitan
Mode Pengalamatan Mengatasi keterbatasan format instruksi
Stack Segment & Bahasa Assembly
Matakuliah : T0483 / Bahasa Rakitan Tahun : 2005 Versi : 1.0
PENGANTAR LOGIKA & TEKNIKPEMROGRAMAN
Struktur Register dan Metode Pengalamatan
REGISTER.
Mikroprosesor 8086 dan 8088.
Sistem Bilangan & REGISTER
Pengantar Bahasa Rakitan
Pengenalan Assembler.
Matakuliah : T0483 / Bahasa Rakitan Tahun : 2005 Versi : 1.0
ASSEMBLER #1 MK. PEMROGRAMAN SISTEM
SISTEM PENGOLAHAN DATA KOMPUTER
ASSEMBLER #3 MK. PEMROGRAMAN SISTEM
BAHASA RAKITAN BAGIAN 1.
Pengantar Bahasa Rakitan
Pengantar Bahasa Rakitan
Mode Pengalamatan Mulyono.
PENGANTAR LOGIKA & TEKNIK PEMROGRAMAN
Lecturer Note II Turbo Pascal & Pemrograman
Pertemuan 4 Central Processing Unit
Program Bahasa Rakitan Tanpa DEBUG.COM
Pengantar Bahasa Rakitan
Struktur Register dan Metode Pengalamatan Memori
CHAP 6 SET INSTRUKSI MEMORI
Transcript presentasi:

Bahasa RakitanABM 1 Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt Kuliah 3: 3.1. Debugging dan TASM 3.2. Interrupt

Bahasa RakitanABM Debugging Proses Pembuatan Program Terdapat 5 langkah: 1.Desain Algoritma: –Penetapan masalah –Pengusulan solusi yang terbaik –Pembuatan diagram skematik yang digunakan agar usulan solusi lebih baik  flowchart 2.Pengkodean algoritma –Penulisan program dalam bahasa pemrograman tertentu 3.Penerjemaahan ke bahasa mesin –Pembuatan program obyek, atau dgn kata lain, program ditulis dalam suatu deret/urutan 0 dan 1 yang dapat diinterpretasi oleh prosessor 4.Test program Eksekusi program pada mesin komputer 5.Mengeliminasi kesalahan yang terdeteksi –Koreksi kesalahan umumnya memerlukan pengulangan seluruh langkah-2 dari langkah 1 atau 2 Untuk membuat program dlm bahasa rakitan tersedia dua option: 1.Mengunakan Turbo Assembler (TASM, Borland) 2.Debugger Proses Pembuatan Program Terdapat 5 langkah: 1.Desain Algoritma: –Penetapan masalah –Pengusulan solusi yang terbaik –Pembuatan diagram skematik yang digunakan agar usulan solusi lebih baik  flowchart 2.Pengkodean algoritma –Penulisan program dalam bahasa pemrograman tertentu 3.Penerjemaahan ke bahasa mesin –Pembuatan program obyek, atau dgn kata lain, program ditulis dalam suatu deret/urutan 0 dan 1 yang dapat diinterpretasi oleh prosessor 4.Test program Eksekusi program pada mesin komputer 5.Mengeliminasi kesalahan yang terdeteksi –Koreksi kesalahan umumnya memerlukan pengulangan seluruh langkah-2 dari langkah 1 atau 2 Untuk membuat program dlm bahasa rakitan tersedia dua option: 1.Mengunakan Turbo Assembler (TASM, Borland) 2.Debugger

Bahasa RakitanABM Debugging (cont’d) Debug: –Hanya dapat membuat program dgn extension *.COM  karena karakteristik sifat program ini  1.program tidak lebih besar 64 K dan 2.Program harus dimulai dgn displacment, offset, atau 0100H memory direction didalam segment tertentu (spesific) –Kumpulan perintah debug:  A: merakit intruksi simbolik  kode mesin  D: menampilkan isi suatu daerah memori  E: memasukan data ke memori, dimulai pada lokasi tertentu  G: run executable program ke memori  N: menamai program  P: ekskusi sekumpulan instruksi yang terkait  Q: quit  R: menampilkan isi satu atau lebih registers  T: trace isi sebuah instruksi  U: unassembled kode mesin ke kode simbolik  W: menulis program ke disk –Dengan debug  visualisasi nilai registers internal dari CPU Memulai debug: C:/>debug[enter] Debug: –Hanya dapat membuat program dgn extension *.COM  karena karakteristik sifat program ini  1.program tidak lebih besar 64 K dan 2.Program harus dimulai dgn displacment, offset, atau 0100H memory direction didalam segment tertentu (spesific) –Kumpulan perintah debug:  A: merakit intruksi simbolik  kode mesin  D: menampilkan isi suatu daerah memori  E: memasukan data ke memori, dimulai pada lokasi tertentu  G: run executable program ke memori  N: menamai program  P: ekskusi sekumpulan instruksi yang terkait  Q: quit  R: menampilkan isi satu atau lebih registers  T: trace isi sebuah instruksi  U: unassembled kode mesin ke kode simbolik  W: menulis program ke disk –Dengan debug  visualisasi nilai registers internal dari CPU Memulai debug: C:/>debug[enter]

Bahasa RakitanABM Debugging (cont’d) -r[enter] AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC 0D62:0100 2E CS:0D62: ED3DF00 CMP BYTE PTR [DFD3],00 CS:DFD3=03  Seluruh isi registers internal ditampilkan Atau dgn menggunakan parameter nama register,mis: -rbx BX 0000 :  akan ditampikan isi register BX dan indikator debug berubah dari “-”  “:” (ini berarti kita dapat mengisi nilai baru dari register BX (masukan nilai + enter), atau kita tetap mempertahankan nilai lama (tekan langsung enter tanpa mengetik nilai) Pembuatan program assembler dasar 1.Menginisialisai Debug, yaitu mengetik debug[enter] pada prompt OS 2.Assemble suatu program dgn perintah “a” yaitu a parameter[enter] Parameter  alamat awal proses perakitan Jika tanpa parameter  diinisialisasi pada posisi (locality) yang dispesifikasikan oleh CS:IP (biasanya 100h yaitu locality dimana sebuah program dgn extension *.CON diinisialisasi ) -r[enter] AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC 0D62:0100 2E CS:0D62: ED3DF00 CMP BYTE PTR [DFD3],00 CS:DFD3=03  Seluruh isi registers internal ditampilkan Atau dgn menggunakan parameter nama register,mis: -rbx BX 0000 :  akan ditampikan isi register BX dan indikator debug berubah dari “-”  “:” (ini berarti kita dapat mengisi nilai baru dari register BX (masukan nilai + enter), atau kita tetap mempertahankan nilai lama (tekan langsung enter tanpa mengetik nilai) Pembuatan program assembler dasar 1.Menginisialisai Debug, yaitu mengetik debug[enter] pada prompt OS 2.Assemble suatu program dgn perintah “a” yaitu a parameter[enter] Parameter  alamat awal proses perakitan Jika tanpa parameter  diinisialisasi pada posisi (locality) yang dispesifikasikan oleh CS:IP (biasanya 100h yaitu locality dimana sebuah program dgn extension *.CON diinisialisasi )

Bahasa RakitanABM Debugging (cont’d) Rekomendasi: lebih baik alamat awal ditulis u/ menghindari masalah-2 yang terjadi segera setelah register CS:IP digunakan  dgn demikian kita ketikan: a 100[enter] mov ax,0002[enter] mov bx,0004[enter] add ax,bx[enter] nop[enter][enter] Keterangan: –move nilai 0002 ke AX, –move nilai 0004 ke BX, –tambahkan nilai bx ke ax, –Intruksi nop  finish the program Kemudian: C:\>debug -a 100 0D62:0100 mov ax,0002 0D62:0103 mov bx,0004 0D62:0106 add ax,bx 0D62:0108 nop 0D62:0109 -t ( execute setiap instruksi dari program) AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0103 NV EI PL NZ NA PO NC 0D62:0103 BB0400 MOV BX,0004 Rekomendasi: lebih baik alamat awal ditulis u/ menghindari masalah-2 yang terjadi segera setelah register CS:IP digunakan  dgn demikian kita ketikan: a 100[enter] mov ax,0002[enter] mov bx,0004[enter] add ax,bx[enter] nop[enter][enter] Keterangan: –move nilai 0002 ke AX, –move nilai 0004 ke BX, –tambahkan nilai bx ke ax, –Intruksi nop  finish the program Kemudian: C:\>debug -a 100 0D62:0100 mov ax,0002 0D62:0103 mov bx,0004 0D62:0106 add ax,bx 0D62:0108 nop 0D62:0109 -t ( execute setiap instruksi dari program) AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0103 NV EI PL NZ NA PO NC 0D62:0103 BB0400 MOV BX,0004

Bahasa RakitanABM Debugging (cont’d) -t AX=0002 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0106 NV EI PL NZ NA PO NC 0D62: D8 ADD AX,BX -t AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0108 NV EI PL NZ NA PE NC 0D62: NOP Menyimpan program 1.Cek panjang prorgram dgn perintah “h” -h 10a 100 (alamat akhir 10a) 020a 000a 2.Menamai prorgram -n test.com 3.Gunakan perintah “rcx” untuk mengubah nilai registes CX dgn nilai yg diperoleh dari ukuran file  000a -rcx CX 0000 :000a 4.Terakhir, gunakan perintah “w” u/ menyimpan -w Writing 000A bytes -t AX=0002 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0106 NV EI PL NZ NA PO NC 0D62: D8 ADD AX,BX -t AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0108 NV EI PL NZ NA PE NC 0D62: NOP Menyimpan program 1.Cek panjang prorgram dgn perintah “h” -h 10a 100 (alamat akhir 10a) 020a 000a 2.Menamai prorgram -n test.com 3.Gunakan perintah “rcx” untuk mengubah nilai registes CX dgn nilai yg diperoleh dari ukuran file  000a -rcx CX 0000 :000a 4.Terakhir, gunakan perintah “w” u/ menyimpan -w Writing 000A bytes

Bahasa RakitanABM Debugging (cont’d) Meload program 1.Berikan nama file yang akan diload 2.Load dgn perintah “l” -n test.com -l -u C3D:0100 B80200 MOV AX,0002 0C3D:0103 BB0400 MOV BX,0004 0C3D: D8 ADD AX,BX 0C3D:0108 CD20 INT 20  Perintah “u” digunakan u/  memverifikasikan bhw program telah diloaded ke memori. Ini berarti dgn perintah ini: kode di unassemble, kemudian meanmpilakn hasil unassemble  Parameter mengindikasi Debug dari mana dan disassamble ke mana.  Debug selalu meload program ke memori pada alamat 100h, kecuali digunakan paramater lain. Meload program 1.Berikan nama file yang akan diload 2.Load dgn perintah “l” -n test.com -l -u C3D:0100 B80200 MOV AX,0002 0C3D:0103 BB0400 MOV BX,0004 0C3D: D8 ADD AX,BX 0C3D:0108 CD20 INT 20  Perintah “u” digunakan u/  memverifikasikan bhw program telah diloaded ke memori. Ini berarti dgn perintah ini: kode di unassemble, kemudian meanmpilakn hasil unassemble  Parameter mengindikasi Debug dari mana dan disassamble ke mana.  Debug selalu meload program ke memori pada alamat 100h, kecuali digunakan paramater lain.

Bahasa RakitanABM TASM Membangun Program Assembler –Software yang diperlukan 1.Editor  pembuatan source program 2.Compiler  menerjemahkan source program ke program obyek (  TASM) 3.Linker  menggenerasi executable program dari program obyek (  TLINK) Pemrograman dgn TASM –Directives berikut penting untuk dimasukan 1..Model SMALL  mendefinisikan model memori yg digunakan dlm prog. 2..CODE  mendefinisikan instruksi prog. 3..STACK  reserves suatu ruang memori bagi instruksi-2 prog. ke stack 4.END  finishes prog.  Langkah-langkah 1.Gunakan prog. Editor u/ membuat source prog. Contoh:. MODEL SMALL;memory model.STACK;memory space for program ;instructions in the stack.CODE;the following lines are ;program instructions Membangun Program Assembler –Software yang diperlukan 1.Editor  pembuatan source program 2.Compiler  menerjemahkan source program ke program obyek (  TASM) 3.Linker  menggenerasi executable program dari program obyek (  TLINK) Pemrograman dgn TASM –Directives berikut penting untuk dimasukan 1..Model SMALL  mendefinisikan model memori yg digunakan dlm prog. 2..CODE  mendefinisikan instruksi prog. 3..STACK  reserves suatu ruang memori bagi instruksi-2 prog. ke stack 4.END  finishes prog.  Langkah-langkah 1.Gunakan prog. Editor u/ membuat source prog. Contoh:. MODEL SMALL;memory model.STACK;memory space for program ;instructions in the stack.CODE;the following lines are ;program instructions

Bahasa RakitanABM TASM (cont’d) mov ah,1h;moves the value 1h to ;register ah mov cx,07h;moves the value 07h to ;register cx int 10h;10h interruption mov ah,4ch;moves the value 4 ch to ;register ah int 21h;21h interruption END;finishes the program code 2.Save program, misal contoh1.asm (disave dalam ASCII format !!) 3.Gunakan TASM u/ membuat prog. Obyek C:\>tasm contoh1.asm 4.Gunakan TLINK u/ membangun excutable prog. C:\>tlink contoh1.obj 5.Eksekusi executable prog. C:\>contoh1[enter]  Proses assembly  manajemen segmen dan perbandingan dgn tabel simbol (dalam hal token- token dari instruksi) mov ah,1h;moves the value 1h to ;register ah mov cx,07h;moves the value 07h to ;register cx int 10h;10h interruption mov ah,4ch;moves the value 4 ch to ;register ah int 21h;21h interruption END;finishes the program code 2.Save program, misal contoh1.asm (disave dalam ASCII format !!) 3.Gunakan TASM u/ membuat prog. Obyek C:\>tasm contoh1.asm 4.Gunakan TLINK u/ membangun excutable prog. C:\>tlink contoh1.obj 5.Eksekusi executable prog. C:\>contoh1[enter]  Proses assembly  manajemen segmen dan perbandingan dgn tabel simbol (dalam hal token- token dari instruksi)

Bahasa RakitanABM TASM (cont’d) –Contoh lain: (contoh2.asm).model small.stack.code mov ah,2h ;moves the value 2h to register ah mov dl,2ah ;moves de value 2ah to register ;dl ;(Its the asterisk value in ;ASCII ;format) int 21h ;21h interruption mov ah,4ch ;4ch function, goes to operating ;system int 21h ;21h interruption end;finishes the program code  Dengan proses yang sama seperti contoh sebelumnya, program akan menghasilkan karakter asterik “*” pada layar monitor –Contoh lain: (contoh2.asm).model small.stack.code mov ah,2h ;moves the value 2h to register ah mov dl,2ah ;moves de value 2ah to register ;dl ;(Its the asterisk value in ;ASCII ;format) int 21h ;21h interruption mov ah,4ch ;4ch function, goes to operating ;system int 21h ;21h interruption end;finishes the program code  Dengan proses yang sama seperti contoh sebelumnya, program akan menghasilkan karakter asterik “*” pada layar monitor

Bahasa RakitanABM Interrupts Jenis-Jenis Interrupts 1.Internal HW interruptions  Ditimbulkan/digenerasi oleh peristiwa tertentu yang terjadi pada waktu/selama eksekusi program  Diatur oleh HW dan tidak mungkin diubah  Contoh: tipe interrupt u/ counter clock internal; HW call interrupt ini u/ memaintance “time to date” 2.External HW interupstions Ditimbulkan/digenerasi oleh devais peripheral, mis keyboard, printers, dsb. Biasa juga ditimbulkan/digenerasi oleh Co- prosessor Tidak mungkin mendeaktivekan Tidak dikirim langsung ke CPU, melainkan ke IC yang memiliki fungsi u/ menghandle secara eksklusive interrupts ini. (IC  PIC8259A, yg dikontrol oleh CPU dgn menggunakan urutan komunikasi  PATH Control 3.Software interruptions Diaktifkan langsung oleh assembler melalui sejumlah interuosi yg diharapkan dgn instruksi INT Jenis-Jenis Interrupts 1.Internal HW interruptions  Ditimbulkan/digenerasi oleh peristiwa tertentu yang terjadi pada waktu/selama eksekusi program  Diatur oleh HW dan tidak mungkin diubah  Contoh: tipe interrupt u/ counter clock internal; HW call interrupt ini u/ memaintance “time to date” 2.External HW interupstions Ditimbulkan/digenerasi oleh devais peripheral, mis keyboard, printers, dsb. Biasa juga ditimbulkan/digenerasi oleh Co- prosessor Tidak mungkin mendeaktivekan Tidak dikirim langsung ke CPU, melainkan ke IC yang memiliki fungsi u/ menghandle secara eksklusive interrupts ini. (IC  PIC8259A, yg dikontrol oleh CPU dgn menggunakan urutan komunikasi  PATH Control 3.Software interruptions Diaktifkan langsung oleh assembler melalui sejumlah interuosi yg diharapkan dgn instruksi INT

Bahasa RakitanABM Interrupts (cont’d) Terdapat dua jenis: 1.DOS interruptions 2.BIOS interupstions  Perbedaannya:  DOS int. lebih mudah digunakan, namun lebih lambat, karena int. jenis ini menggunakan BIOS  BIOS int. lebih cepat, namun banyak kerugiannya karena BIOS bagian HW dan HW- specific Pemilihan interupts tergantung pada karakteristik yang akan kita berikan pada program: SPEED  BIOS int; PORTABILITY  DOS int. Interrupts yang sering digunakan Int 21H (DOS interruption) Multiple class to DIS functions Int 10H (BIOS) Video I/O.. Int 16H (BIOS) Keyboard I/O Int 17H (BIOS) Printer I/O Terdapat dua jenis: 1.DOS interruptions 2.BIOS interupstions  Perbedaannya:  DOS int. lebih mudah digunakan, namun lebih lambat, karena int. jenis ini menggunakan BIOS  BIOS int. lebih cepat, namun banyak kerugiannya karena BIOS bagian HW dan HW- specific Pemilihan interupts tergantung pada karakteristik yang akan kita berikan pada program: SPEED  BIOS int; PORTABILITY  DOS int. Interrupts yang sering digunakan Int 21H (DOS interruption) Multiple class to DIS functions Int 10H (BIOS) Video I/O.. Int 16H (BIOS) Keyboard I/O Int 17H (BIOS) Printer I/O