Anda di halaman 1dari 18

LAPORAN PRAKTIKUM MIKROKONTROLER DAN MIKROPROSESOR BAHASA ASSAMBLER 1

OLEH :

KELOMPOK NAMA NO BP PARTNER KELAS PRODI JURUSAN

: 12 : Ilham Idris : 1001081004 : Tiara Aprilia : TK 2B : TEKNIK KOMPUTER : TEKNOLOGI INFROMASI

POLITEKNIK NEGERI PADANG 2011/2012

LAPORAN PRAKTIKUM 1 BAHASA ASSEMBLER 1 A. DASAR TEORI Dalam bahasa assembler mempunyai 3 instruksi dasar, yaitu mnemonic opcode), operan 1 dan operan2 serta komentar (jika diperlukan)

Mnemonic atau opcode ialah kode yang akan melakukan aksi terhadap operand . Operand ialah data yang diproses oleh opcode. Sebuah opcode bisa membutuhkan 1 ,2 atau lebih operand, kadang juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan menggunakan tanda titik koma (;). Berikut contoh jumlah operand yang berbeda beda dalam suatu assembly. CJNE R0,#22H, Tasmi ;dibutuhkan 3 buah operand MOVX @DPTR, A ;dibutuhkan 2 buah operand RR A ;1 buah operand NOP ; tidak memerlukan operand Semua instruksi tersebut dapat dibagi menjadi lima kelompok menurut fungsinya, yaitu: Instruksi Pemindahan Data Instruksi Aritmatika Instruksi Logika dan Manipulasi Bit Instruksi Percabangan Instruksi Stack, I/O, dan Kontrol

1.2.2 Debug dan Interupt A. Debug Debug adalah suatu utiliti dalam DOS yang digunakan untuk membuat pemrograman assambler dengan format ekstensi COM. Perintah-perintah debug antara lain : 1. Q (Quit) Mengembalikan ke dos prompt C> Debug -Q A> 2. H (Hexa) Melaksanakan perintah penambahan dan pengurangan terhadap dua bilangan hexa C>Debug -H 2204 2012 4216 01F2 3. A (assambler) Perintah untuk menulis program assambler C>Debug -a 17C0:0100 mov ax,12 4. R(Register) Digunakan untuk mengetahui isi masing-masing register C>debug -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=17C0 ES=17C0 SS=17C0 CS=17C0 IP=0100 NV UP EI PL NZ NA PO NC 17C00:0100 B81200 mov ax,12 Perintah ini juga bisa untuk mengetahui atau memperbaharui isi register tertentu C>Debug rCX CX 0000 :0100 C>Debug rCX CX 0100 3

: 5. N(Name) Perintah untuk membuat atau merubah nama file C>Debug -N D:Coba.com 6. W(Writing) Menulis program dan data ke dalam disc C>Debug -w writing 0008 bytes 7. G (Go) Menjalankan program (misal program cetak huruf A) C>Debug -G A Program terminated normally 8. T(Trace) Menjalankan program perbaris dengan menampilkan register dipakai C>Debug -T AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=17C0 ES=17C0 SS=17C0 CS=17C0 IP=0100 NV UP EI PL NZ NA PO NC 17C00:0100 B81200 mov ax,12 9. U (Unsamble) Menampilkan list dari program yang sedang berjalan U[tempat awal program yang diinginkan]L[panjang program/1 byte akhir dari alamat akhir program]

B. Interupt (Int) Perintah ini merupakan pemanggilan subroutin yang sudah tersedia di memori komputer Subroutine yang dapat dipanggil menggunakan perintah int (Interup) terdiri dari dua jenis yaitu: 1. Bios Interrupt, yaitu Int yang disediakan oleh BIOS(Basic Input Output System). Int yang termasuk dalam Interrupt Bios adalah Int 0 hingga 1F hexa 2. DOS Interrupt yaitu Int yang disediakan oleh DOS (Disk Operation System). Yang termasuk dalam Interrupt ini adalah Interrupt diatas 1F hexa 4

Interupt DOS yang sering digunakan adalah Int 20h dan Int 21h service 02h a. Int 20h Int ini mempunyai tugas memberhentikan proses komputer terhadap suatu program COM. b. Int 21h service 21h Int 21h mempunyai banyak tugas sehingga dibagi menjadi berbagai macam service number. Service 02h merupakan bagian tugas Int 21h yang sering dipakai yaitu untuk mencetak sebuah huruf ke monitor. Untuk menjalankan fungsi Int 21h service 02h harus memenuh syarat sebagai berikut: 1. Register AH harus berisi service number dari Int 21h yang akan dijalankan (02h) 2. Register DL, harus berisi bilangan hexa dari karakter ASCII yang akan dicetak. C. Instruksi-Instruksi Dasar 1. Instruksi Pengalamatan MOV tujuan,asal (tujuan: register/memori, asal:angka/register/memori) Misal MOV AX,1234H (register AX diisi angka 1234 H) 2. Instruksi Penjumlahan INC tujuan Misal INC DX (DX = DX+1) ADD tujuan,asal Misal ADD AX,1234 (AX=AX+1234H) 3. Instruksi Pengurangan DEC tujuan Misal DEC AX (AX=AX-1) SUB tujuan,asal Misal SUB AX,1200H (AX = AX-1200H) B. ALAT DAN BAHAN Alat-alat yang digunakan adalah 1. PC 2. Utility Debug

C. LANGKAH KERJA a. Kerja 1 Menggunakan Debug.com a.1 Program 1 Langkah Kerja: Berikut ini langkah membuat program untuk mencetak huruf A dengan utiliti DEBUG.COM 1. Klik start, dari tampilan menu pilih Run. Ditampilan menu Run, ketik command dan selanjutnya pilih OK

2. Dari layar DOS prompt yang muncul, tukar folder document and settings ke folder compiler untuk mikroprosessor 8088, seperti yang tampak pada gambar 1.1

3. Kemudian ketik debug (huruf besar dan kecil tidak berpengaruh)

4. Ketik A/a

5. Tulis program berikut


MOV AH,02, Kemudian tekan Enter 6

MOV DL,41, tekan Enter INT 21, tekan Enter INT 20, tekan Enter 2 kali

Maka tertampil sebagai berikut

Keterangan program: Mov ah,02 adalah mengisi register ah dengan service number dari int 21 untuk mencetak 1 huruf pada layar. Mov dl,41 mengisi register dl dengan 41 yang merupakan Kode ASCII dari huruf A Int 21 ; perintah mencetak Int 20 perintah untuk menghentikan program

6. Kemudian tulis g

7. Cek perbaris program dengan mengetikkan perintah T

Pada baris terakhir tertulis B241 yang merupakan opcode dari perintah mov dl,41 8. Kemudian ketik T 2 kali, maka akan terlihat sebagai berikut
7

Pada baris terakhir tertulis opcode dari perintah int 21 9. Keluar dari utiliti Debug dengan ketik Q

a.2 Program 2 : Melihat isi memori Langkah kerja : 1. Ketiklah program dibawah ini :
MOV CX,05 MOV AH,02 MOV DL,41 INT 21 LOOP 0103 INT 20 Enter 2 kali

2. Kemudian ketik g

3. Kemudian Ketik U 100 L 0d dan isi tabel berikut

Tabel 1 Tabel Instruksi ALAMAT SEGMEN OFFSET 0AF0 0100 0AF0 0103 0AF0 0105 0AF0 0107 0AF0 0109 0AF0 010B INSTRUKSI MOV MOV MOV INT LOOP INT OPCODE B90500 B402 B241 CD21 E2F8 CD20 KETERANGAN CX, 0005 AH, 02 DL, 41 21 0103 20

4. Gunakan perintah Trace (T)

Tabel 2 Isian Register ALAMAT SEGMEN OFFSET 0AF0 0103 0AF0 0105 0AF0 0107 REGISTER CX DX AX BX 0000 0000 0005 0000 0200 0000 0005 0000 0200 0000 0005 0041

SP FFEE FFEE FFEE

IP 0103 0105 0107

a.3 Operasi Aritmatika a. Program menampilkan huruf A s/d Z


1. Tulis program untuk menampilkan huruf A s/d Z berikut MOV CX,1A MOV DL,41 MOV AH,02 INT 21 INC DL LOOP 0105 INT 20

2. Buat tabel seperti tabel 1. dan 2

10

Tabel Instruksi ALAMAT SEGMEN OFFSET 0AF0 0100 0AF0 0103 0AF0 0105 0AF0 0107 0AF0 0109 0AF0 010B INSTRUKSI MOV MOV MOV INT INC LOOP OPCODE B91A00 B241 B402 CD21 FEC2 E2F8 KETERANGAN CX, 001A DL, 41 AH, 02 21 DL 0105

Tabel Register ALAMAT SEGMEN OFFSET 14AE 0103 14AE 0105 14AE 0107 REGISTER CX DX AX BX 0000 0000 001A 0000 0000 0000 001A 0041 0200 0000 001A 0041

SP FFEE FFEE FFEE

IP 0103 0105 0107

3. Tulis program berikut


MOV CX,1A MOV DL,5A MOV AH,02 INT 21 INC DL LOOP 0105 INT 20

11

Tabel Instruksi ALAMAT SEGMEN OFFSET 0AF0 0100 0AF0 0103 0AF0 0105 0AF0 0107 0AF0 0109 0AF0 010B INSTRUKSI MOV MOV MOV INT INC LOOP OPCODE B91A00 B25A B402 CD21 FEC2 E2F8 KETERANGAN CX, 001A DL, 5A AH, 02 21 DL 0105

Tabel Register ALAMAT SEGMEN OFFSET 0AF0 0103 0AF0 0105 0AF0 0107 REGISTER CX DX AX BX 0000 0000 001A 0000 0000 0000 001A 005A 0200 0000 001A 005A
12

SP FFEE FFEE FFEE

IP 0103 0105 0107

a.d Operasi Lompat dan perbandingan Tulis program berikut


MOV BX,0000 MOV DL,41 MOV CX,0003 MOV AH,02 INT 21 LOOP 0108 INC DL CMP DL,5B JNE 0105 MOV DL,0D MOV AH,02 INT 21 MOV DL,0A INT 21 INC BX CMP BX,000B JLE 0103 INT 20

13

Tabel Instruksi ALAMAT SEGMEN


14AE 14AE 14AE 14AE 14AE 14AE

INSTRUKSI MOV BX, 0000 MOV DL, 41 MOV CX, 0003 MOV AH, 02 INC 21 LOOP 0108

OPCODE BB0000 B241 B90300 B402 CD21 E2FA

KETERANGAN

OFFSET 0100 0103 0105 0108 010A 010C

Tabel Register ALAMAT SEGMEN OFFSET 0AF0 0103 0AF0 0105 0AF0 0107 0AF0 010A REGISTER CX DX 0000 0000 0000 0041 0003 0041 0003 0041

AX 0000 0000 0200 0200

BX 0000 0000 0000 0000

SP FFEE FFEE FFEE FFEE

IP 0103 0105 0107 010A

14

o.e Operasi Stack 1. Tulis program berikut


MOV AH,02 MOV CX,1A MOV DL,41 INT 21 MOV BL,DL MOV DL,20 INT 21 MOV DL,BL INC DL LOOP 107 INT 20

Tabel Instruksi ALAMAT SEGMEN


149A 149A 149A 149A 149A 149A

INSTRUKSI MOV AH, 02 MOV CX, 001A MOV DL, 41 INT 21 MOV BL, DL MOV DL, 20
15

OPCODE B402 B91A00 B241 CD21 88D3 B220

KETERANGAN

OFFSET 0100 0102 0105 0107 0109 010B

Tabel Register ALAMAT SEGMEN OFFSET 149A 0102 149A 0105 149A 0107 REGISTER CX DX AX BX 0200 0000 0000 0000 0200 0000 001A 0000 0200 0000 001A 0041

SP FFEE FFEE FFEE

IP 0102 0105 0107

2. Tulis program berikut


MOV AH,02 MOV CX,1A MOV DL,41 INT 21 PUSH DX MOV DL,20 INT 21 POP DX INC DL LOOP 107 INT 20

16

Tabel Instruksi
ALAMAT INSTRUKSI 0100 0102 0105 0107 0109 010A 010C MOV AH, 02 MOV CX, 001A MOV DL, 41 INT 21 PUSH DX MOV DL, 20 INT 21 OPCODE B402 B91A00 B241 CD21 52 B220 CD21 KETERANGAN

SEGMEN
0AE8 0AE8 0AE8 0AE8 0AE8 0AE8 0AE8

OFFSET

17

Tabel Register ALAMAT SEGMEN OFFSET 0AE8 0102 0AE8 0105 0AE8 0107 REGISTER CX DX AX BX 0200 0000 0000 0000 0200 0000 001A 0000 0200 0000 001A 0041

SP FFEE FFEE FFEE

IP 0102 0105 0107

D.Kesimpulan 1. Intel menggunakan processor dengan register 16 bit atau biasa disebut dengan general purposeregister yang dibagi menjadi 4 yaitu resigter AX, BX, CX, DX. 2. Fungsi dari register AX yaitu sebagai akumulator dan berhubungan dengan jenis-jenis operasikhusus seperti Aritmetika, In/Out, Shift, Logic, Rotate, dan operasi desimal berkode biner. 3. Fungsi dari register BX yaitu sebagai register base untuk mereferensi alamat memori. 4. Fungsi dari register CX yaitu sebagai pencacah implisit dengan instruksi tertentu. 5. Fungsi dari register DX yaitu menyimpan alamat port I/O selama operasi I/O tertentu 6. SP berfungsi untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. SPmerupakan register yang secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpandan mengambil kembali dari stack. 7. Fungsi IP yaitu untuk menunjukkan baris perintah program. 8. Fungsi DS yaitu untuk menyimpan alamat dari segment dimana data terletak. 9. Fungsi SS yaitu untuk menyimpan alamat segment memori yang dipergunakan sebagai stack. 10. Fungsi ES yaitu untuk menyimpan alamat segment tambahan, misalnya alamat display, alamatsistem operasi, dan sebagainya. 11. Fungsi CS yaitu untuk mencatat segment dari kode program atau instruksi. 12. Alamat offset program selalau berawal pada alamat 0100. 13. NIlai instruction porinter selalu bernilai sama dengan alamat offset. 14. Satu program selalu pada segment yang samaE. Referensi1. Modul Praktikum Mikrokontroller Jurusan Teknik Komputer Politeknik Negeri Padang.
18

Anda mungkin juga menyukai