Rabu, 28 Maret 2012


LATIHAN
Membuat program untuk menampilkan 1*1
Langkah Kerja:
1.      Klik start, dari tampilan menu pilih Run. Ditampilan menu Run, ketik command dan selanjutnya pilih OK.
2.      Selanjutnya ketik huruf A/a, lalu tekan Enter, maka akan keluar tampilan -> 15FA:0100.
15FA : adalah alamat segmen.
0100 : adalah alamat offset

3.      Lalu ketikan perintah seperti di bawah ini:

C:\USERS\SIKEMB~1>debug
15FA:0100 mov ah,02
15FA:0102 mov dl,31
15FA:0104 int21
15FA:0106 movbl,dl
15FA:0108 mov dl,2a
15FA:010A int 21
15FA:010C mov bl,dl
15FA:010E movdl,31
15FA:0110 int 21
15FA:0112 mov bl,dl
15FA:0114 mov dl,3d
15FA:0116 int 21
15FA:0118 mov bl,dl
15FA:011A mov dl,31
15FA:011C incdl
15FA:011E loop 107
15FA:0120 int 20
15FA:0122
-g
1*1=
Divide overflow

MICROPROCESSOR

PRAKTEK MICROPROSESOR

Oleh Kelompok II:
Ayu Berlianda Putri (1001083014)
Irhamul Hamdi (1001083018)

Dasar Teori
1.2.1 Bahasa Assambler
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
:
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
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)