laporan-pratikum

Upload: habdi-rizki

Post on 14-Oct-2015

16 views

Category:

Documents


0 download

DESCRIPTION

my report

TRANSCRIPT

LAPORAN PRATIKUMMIKROKONTROLER DAN MIKROPROCESSORBAHASA ASSAMBLER 1

Nama : Rendi GustianNo. BP: 1001082014Kelas/Group : TK2C / 8 ( Delapan )Nama Partner : Serly HayaniProdi : Teknik KomputerJurusan : Teknologi Informasi

Politeknik Negeri Padang

A. Dasar TeoriDalam 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.

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

DebugDebug 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 promptC> Debug-QA>2. H (Hexa)Melaksanakan perintah penambahan dan pengurangan terhadap dua bilangan hexaC>Debug-H 2204 20124216 01F23. A (assambler)Perintah untuk menulis program assamblerC>Debug-a17C0:0100 mov ax,124. R(Register)Digunakan untuk mengetahui isi masing-masing register C>debug-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=17C0 ES=17C0 SS=17C0 CS=17C0 IP=0100 NV UP EI PL NZ NA PO NC17C00:0100 B81200 mov ax,12Perintah ini juga bisa untuk mengetahui atau memperbaharui isi register tertentuC>DebugrCXCX 0000:0100C>DebugrCXCX 0100:5. N(Name)Perintah untuk membuat atau merubah nama fileC>Debug-N D:Coba.com6. W(Writing)Menulis program dan data ke dalam discC>Debug-wwriting 0008 bytes7. G (Go)Menjalankan program (misal program cetak huruf A)C>Debug-GAProgram terminated normally8. T(Trace)Menjalankan program perbaris dengan menampilkan register dipakaiC>Debug-TAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=17C0 ES=17C0 SS=17C0 CS=17C0 IP=0100 NV UP EI PL NZ NA PO NC17C00:0100 B81200 mov ax,129. U (Unsamble)Menampilkan list dari program yang sedang berjalanU[tempat awal program yang diinginkan]L[panjang program/1 byte akhir dari alamat akhir program]

Interupt (Int)Perintah ini merupakan pemanggilan subroutin yang sudah tersedia di memori komputerSubroutine 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 hexa2. DOS Interrupt yaitu Int yang disediakan oleh DOS (Disk Operation System). Yang termasuk dalam Interrupt ini adalah Interrupt diatas 1F hexaInterupt DOS yang sering digunakan adalah Int 20h dan Int 21h service 02ha. Int 20hInt ini mempunyai tugas memberhentikan proses komputer terhadap suatu program COM.b. Int 21h service 21hInt 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.

Instruksi-Instruksi Dasar1. Instruksi PengalamatanMOV 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,asalMisal 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 BahanAlat-alat yang digunakan adalah 1. PC 2. Utility Debug

C. Langkah Kerja1. Klik start, dari tampilan menu pilih Run. Ditampilan menu Run, ketik command dan selanjutnya pilih OK

2. Jika sudah berada di debug.com ketik program berikut, beri nama :MOV CX,05MOV AH,02MOV DL,42INT 21LOOP 0103INT 20Enter 2 kali

3. Lihat hasil program dengan ketikkan g

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

Tabel 1 Tabel InstruksiALAMATINSTRUKSIOPCODEKETERANGAN

SEGMENOFFSET

13940100MOV CX,0005B90500Register CX diisi 05H

13940103MOV AH,02B402Untuk mencetak

13940105MOV DL,41B241Mengisikan Kode A

13940107INT 21CD21Perintak u/ cetak

13940109LOOP 0103E2F8Perulangan pada 0103

1394010BINT 20CD20Menghentikan program

5. Gunakan perintah Trace (T) dan isi tabel berikut

Tabel 2 Isian RegisterALAMATREGISTER

SEGMENOFFSETAXBXCXDXSPIP

0AE601030000000000050000FFEE0103

0AE601050200000000050000FFEE0105

0AE601070200000000050041FFEE0107

Kesimpulan Instruksi (MOV) digunakan untuk memindahkan data dari satu tempat ke tempat lain Int ini mempunyai tugas memberhentikan proses komputer terhadap suatu program COM. Mov ah, 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 merupakan perintah mencetak Int 20 perintah untuk menghentikan program

Tugas1. Dari program-program yang sudah ditulis dan diuji apa fungsi dari registerAX,BX,CX,DX,SP,IP,DS,SS,ES,CSRegister AX, secara khusus digunakan pada operasi aritmatika terutama dalam operasi pembagian dan pengurangan.Register BX, biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen.Register CX, digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi.Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit. Pada prosesor 80386 terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX dan EDX.Register CS(Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif, register ini sebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program anda nantinya.Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana data-data pada program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada program residen. Register ES (Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat di memorySS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack. register ini sebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program anda nantinya.Index Pointer Register ,Register IP berpasangan dengan CS(CS:IP) menunjukkan alamat dimemory tempat dari intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan register 16 bit.Register SP(Stack Pointer) yang berpasangan dengan register segment SS(SS:SP) digunakan untuk mununjukkan alamat dari stack.

2. Apa yang bisa disimpulkan dari tabel 1.1 sampai dengan tabel terakhir : Instruksi (MOV) digunakan untuk memindahkan data dari satu tempat ke tempat lain Int ini mempunyai tugas memberhentikan proses komputer terhadap suatu program COM. Mov ah, 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 merupakan perintah mencetak Int 20 perintah untuk menghentikan program

3. Buat program untuk menampilkan (1*1=1) 138D:0100 MOV AH,02138D:0102 MOV DL,31138D:0104 INT 21138D:0106 MOV AH,02138D:0108 MOV DL,2A138D:010A INT 21138D:010C MOV AH,02138D:010E MOV DL,31138D:0110 INT 21138D:0112 MOV AH,02138D:0114 MOV DL,3D138D:0116 INT 21138D:0118 MOV AH, 02138D:011A MOV DL, 31138D:011C INT 21138D:011E INT 20