Wednesday, 28 March 2012

Pratikum Microprosessor | laporan 1

Pratikum  Microprosessor 1
Assambler



Muhammad iLham
Lidya Febriyani



  1. Dasar Teori

 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

    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 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 registerC>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] 
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)       

2. Langkah Kerja 

  •  Melihat isi memori
1.      Jika sudah berada di debug.com ulangi langkah 4 dan ketik program berikut, beri nama
  MOV CX,05  MOV AH,02  MOV DL,41  INT 21  LOOP 0103  INT 20  Enter 2 kali2.      Lihat hasil program dengan ketikkan g


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

ALAMAT
INSTRUKSI
OPCODE
KETERANGAN
SEGMEN
OFFSET



0AF0 
0100 
MOV CX,30 
 B9 3000

0AF0   
0103 
MOV AH,54 
 B454

 0AF0  
0105  
MOV DL,65 
 B265

0AF0   
0107  
INT 21 
 CD21

0AF0  
0109 
LOOP 0103 
 E2F8

0AF0 
010B 
INT 20 
 CD20

4.      Gunakan perintah Trace (T) dan isi tabel berikut
Tabel 2 Isian Register

ALAMAT
REGISTER
SEGMEN
OFFSET
AX
BX
CX
DX
SP
IP
0AF0  
0107 
5400 
 0000
  0030
 0065
FFEE 
 0107
00A7 
107C 
5400 
 0000
  0030
 0065
 FFE8
 107C
0AF0 
 0105
 5400
 0000
  0030
 0000
 FFEE
 0105










  •  Operasi Aritmatika
 1.      Tulis program untuk menampilkan huruf A s/d Z berikut dan beri nama tambah1.com             
       MOV CX,1A   MOV DL,41   MOV AH,02   INT 21   INC DL   LOOP 0105   INT 20
Tabel 1 Tabel Instruksi
ALAMAT
REGISTER
SEGMEN
OFFSET
INSTRUKSI
OPCODE
KETERANGAN
0AFU
0100
MOV CX, 001A
B91A
1.    1A = 1 * 16 +10 *16
      = 16 + 10
      = 26
Ket: 26 kali perulangan.
2.    41 = “A”
3.    INC DL= 41+1=42
                 42+1=43
s/d stop

0AFU
0103
MOV DL, 41
B241
0AFU
0105
MOV AH, 02
B402
0AFU
0107
INT 21
CD21
0AFU
0109
INC DL
FEC2
0AFU
010B
LOOP 0105
E2F8
0AFU
010D
INT 20
CD20





Tabel 2 Isian Register

ALAMAT
REGISTER
SEGMEN
OFFSET
AX
BX
CX
DX
SP
IP
0AFU
0103
0000
0000
001A
0000
FFEE
0103
0AFU
0105
0000
0000
001A
0041
FFEE
0105
0AFU
0107
0200
0000
001A
0041
FFEE
0107







Hasilnya : ABCDEFGHIJKLMNOPQRSTUFWXYZ

3.      Tulis program berikut dan beri nama kurang1.com
MOV CX,1AMOV DL,5AMOV AH,02INT 21INC DLLOOP 0105INT 20Kemudian Ketik U 100 L (lihat bit awal dari alamat akhir program) dan buat tabel seperti tabel 
Hasilnya : ZYXWVUTSRQPONMLKJIHGFEDCBA
  •  Operasi Lompat dan perbandingan


1.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
2.Kemudian Ketik U 100 L (lihat bit awal dari alamat akhir program) dan buat tabel seperti tabel 1.dan 2
Tabel 1 Tabel Instruksi
ALAMAT
INSTRUKSI
OPCODE
KETERANGAN
SEGMEN
OFFSET


































Tabel 2 Isian Register
ALAMAT
REGISTER
SEGMEN
OFFSET
AX
BX
CX
DX
SP
IP

















































  •  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
Kemudian Ketik U 100 L (lihat bit awal dari alamat akhir program) dan buat tabel seperti tabel 1. Dan 2
Tabel 1 Tabel Instruksi


SEGMEN
OFFSET
INSTRUKSI
OPCODE
KETERANGAN
0AFU
0100
MOV AH, 02
B402
1.    MOV BL, DL = BL(spasi) berfungsi untuk menyimpan fungsi DL.
2.    MOV DL, BL = berfungsi untuk mengembalikan fungsi dari DL.
0AFU
0103
MOV CX, 001A
B91A00
0AFU
0105
MOV DL, 41
B241
0AFU
0107
INT 21
CD21
0AFU
0109
MOV BL, DL
88B3
0AFU
010B
MOV DL, 20
B220
0AFU
010D
INT 21
CD21
0AFU
010F
MOV DL, BL
88DA
0AFU
0111
INC DL
FEC2
0AFU
0113
LOOP 0107
E2F2
0AFU
0115
INT 20
CD20


Tabel 2 Register
ALAMAT
REGISTER
SEGMEN
OFFSET
AX
BX
CX
DX
SP
IP
0AFU
0103
0000
0000
0000
0000
FFEE
0103
0AFU
0105
0200
0000
001A
0000
FFEE
0105
0AFU
0107
0200
0000
001A
0041
FFEE
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
Kemudian Ketik U 100 L (lihat bit awal dari alamat akhir program) dan buat tabel seperti tabel 1.dan 2
Tabel 1 Tabel Instruksi



SEGMEN
OFFSET
INSTRUKSI
OPCODE
KETERANGAN
0AFU
0100
MOV AH, 02
B402
MOV DL,20 merupakan spasi dari tiap alfabet.
0AFU
0102
MOV CX, 001A
B91A00
0AFU
0105
MOV DL, 41
B241
0AFU
0107
INT 21
CD21
0AFU
0109
PUSH DX
52
0AFU
010A
MOV DL, 20
B220
0C1E
010C
INT 21
CD21
0C1E
010E
POP DX
5A
0C1E
010F
INC DL
FEC2
0C1E
0111
LOOP 0107
E2F2
0C1E
0113
INT 21
CD20


Tabel 2 Isian Register 

ALAMAT
REGISTER
SEGMEN
OFFSET
AX
BX
CX
DX
SP
IP
0C1E
0103
0200
0000
0000
0000
FFEE
0103
0C1E
0105
0200
0000
001A
0000
FFEE
0105
0C1E
0107
0200
0000
001A
0041
FFEE
0107






3.Kesimpulan 
  Dari data-data diatas dapat disimpulkan pada percobaan ini int 20 berfungsi untuk mencetak hasil program
keterangan pada proses aritmatika .    

1.1A = 1 * 16 +10 *16      = 16 + 10      = 26Ket: 26 kali perulangan.  2.    41 = “A”  3.    INC DL= 41+1=42                 42+1=43  
s/d stop.
MOV DL,20 fungsinya sebagai spasi dalam alfabet.MOV BL, DL = BL(spasi) berfungsi untuk
menyimpan fungsi DL.   MOV DL, BL = berfungsi untuk mengembalikan fungsi dari DL.

Latihan 
1.      Buat program untuk menampilkan
1*1 = 1
2*1 = 2
2.      Buat program untuk menampilkan
1:1 = 1
2:1 = 2

No comments:

Post a Comment